2017-08-21 7 views
-3

を使用して、指定されたディレクトリ内のすべてのファイル内の文字列を検索する方法。私は初心者です。bash grepコマンド

count=0 
for f in $ls do 
count+= grep -c "classes" $f 
done 
echo $count 

答えて

0
count=0 
for f in * 
do 
if [ -f "$f" ] #check if that file is regular file 
then 
    count=$(($count+$(grep -c "classes" "$f"))) 
fi 
done 
echo $count 
+0

'grep:all:そのようなファイルやディレクトリはありません grep:it:そのようなファイルやディレクトリはありません grep:takes.jpg:そのようなファイルやディレクトリはありません。 ./script8:行4:0+:構文エラー:オペランドが必要です(エラートークンは "+") –

+0

私のディレクトリ+答えは13 –

+0

です。編集された答え – tso

0

私はあなたが次のことを試してみて、これがあなたを助けなら、私に知らせてください可能性があり、この要件のために最良の選択肢となります見つけると信じています。

find . -type f -exec grep -i "test" {} + | wc -l 
OR 
find . -type f | xargs grep -i "test" | wc -l 

上記のDOTの代わりにパスを指定することもできます。

+0

grepの質問が明示的にgrepに尋ねます –

+1

grepはfindと一緒にあります。findはここでファイルを扱っていることを確認するために使用されます。 – RavinderSingh13

+0

@ErwinSmith Grepは明らかに答えです... – 123

0

はちょうどあなたが出現数を取得したい場合は

grep -R "text" . 

内の現在のディレクトリにある「テキスト」と、すべてのファイルを検索する

grep -R <stringToSearch> <dirName> 

例えば

を使用するパイプとして wc -lを使用

grep -R "text" . | wc -l