2016-05-27 4 views
0

名前と内容に特定の単語が含まれているディレクトリ内のファイルを数えたいと思います。Linux:名前と内容に単語が含まれているファイルを数えます。

find ./test -maxdepth 1 -type f -iname "*main*" | wc -l 

与えられたスニペットは、名前に "main"を含むファイルをカウントします。コンテンツに「メイン」が含まれているかどうかをチェックするために変更する方法あなたのファイルを超える

答えて

1

ループやgrepの出力抑制するgrep -qを使用します。

for file in `find ./test -maxdepth 1 -type f -iname "*main*"`; do 
    if grep -q main $file; then 
     wc -l $file 
    fi 
done 

出力

5 ./test/foo_main 
0

find ./test -maxdepth 1 -type f -iname "*main*" -exec grep -q main {} \; -exec printf '\n' \; | wc -l

-exec printf '\n' \;代わりの-print改行文字を含むファイル名から保護します。

関連する問題