如何遍历bash中的find结果并对每个结果执行操作

时间:2017-08-28 23:41:05

标签: bash

我是新手来编写脚本。我需要对300个文件执行相同的操作。到目前为止,我已尝试过以下内容:

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

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

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

  1. 转到它父母的父目录
  2. 然后转到另一个孩子(早期文件的父目录的兄弟姐妹)并在其中找到一个名为'abc.js'的文件
  3. 现在,在abc.js中,找到一个特定的单词(对象属性)“user”
  4. 现在在新行上插入一行js代码。 (所有文件的代码完全相同)
  5. 如果可以从mac命令行告诉我,请告诉我。 感谢

1 个答案:

答案 0 :(得分: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

此版本适用于任何不包含换行符的文件名。