2016-07-30 1 views
0

私はbashスクリプトでgrepを実装する方法は?

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

[OK]を検索するには、現在のフォルダに

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

を検索するには、あなたがエラーまたはなしの結果などを取得していますか?あなたの質問を提示する時間を取って、迅速な対応をしてください。 – SMA

+1

には閉じた 'fi;'があり、 'done;'はその順番で終了しています。 –

+0

また、文字列が複数回、つまり異なるファイルで発生した場合はどうなりますか? –

答えて

2

forループを避け、

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

またはより良い

find ${PWD} -type f -exec grep -l "${pattern}" {} + 
のようなものを使用します(ループのために)ディレクトリにはgrepを使用してファイルに文字列を検索するために働いています
1

findコマンドを使用します。特定のフォルダに

find /home/hduser -exec grep "$pattern" {} \; -print' 
関連する問題