2017-08-28 41 views
0

我对bash脚本编程非常陌生。我需要对300个文件执行相同的操作。到目前为止,我已经试过如下:如何遍历在bash中查找的结果并对其执行操作

empty_files=$(find ./ -type f -empty) 
echo "$empty_files" 

现在我有完整路径的所有300个文件,存储在变量empty_files。

现在我想做的是,对于结果中的每个文件

  1. 去到它的父目录的父目录,
  2. 然后去别的孩子(早期文件的父目录的兄弟姐妹),并找到一个名为'abc.js'的文件
  3. 现在,在abc.js中找到一个特定的单词(对象属性)“user”
  4. 现在在新行上插入一行js代码。 (完全相同的代码为所有文件)

请让我知道,如果可能从mac命令行。 感谢

+0

所以,你想找到所有名为'abc.js'的文件并插入一行?首先编写一个脚本,在第一个参数中命名的文件中插入一行,然后执行find。 -name abc.js -exec ./my_script {} \;' –

+0

如果任何路径名包含空格,则第一行将不起作用。 – Barmar

回答

1

您可以使用for循环:

for file in "${empty_files[@]}" 
do 
    ... code that uses "$file" 
done 

你也管直接从find进入死循环:

find . -type f -empty | while read -r file 
do 
    ... code that uses "$file" 
done 

这个版本应该对任何工作的文件名不包含新队。

相关问题