2017-08-28 80 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 

這個版本應該對任何工作的文件名不包含新隊。

相關問題