2016-07-30 49 views
0

我正在尋找使用grep的文件中的字符串目錄(在for循環)如何在bash腳本中實現grep?

for file in .* *; do 
    if [[ -f "$file" && `grep -r "$pattern" "$file"` ]]; then 
    path=`pwd`/"$file" 
    echo "$path" 
    fi 
done 
+1

確定搜索和你得到錯誤或者沒有結果等?花點時間提出您的問題以獲得快速回復。 – SMA

+1

按順序缺少一個關閉'fi;'和一個關閉'done;'。 –

+0

另外如果字符串出現多次,即在不同的文件? –

回答

2

避免for循環,並使用類似

grep -l "${pattern}" ${PWD}/.* ${PWD}/* 

或更好

find ${PWD} -type f -exec grep -l "${pattern}" {} + 
1

使用find命令。到當前文件夾

find . -exec grep "$pattern" {} \; -print' 

在搜索,在特定的文件夾

find /home/hduser -exec grep "$pattern" {} \; -print'