私はUbuntuでbashを使用しています。
現在、これは現在のディレクトリでうまく機能します。
catdoc *.doc | grep "specificword"
しかし、.docファイルを含むサブディレクトリがたくさんあります。
たとえば、「特定の単語」を再帰的に検索するにはどうすればよいですか?
再帰検索にはfind
を使用します。
find -name '*.doc' -exec catdoc {} + | grep "specificword"
これにより、ファイル名も出力されます。
find -name '*.doc' | while read -r file; do
catdoc "$file" | grep -H --label="$file" "specificword"
done
(通常はfind ... -print0 | while read -rd "" file
を使用しますが、必要になる可能性が.0001%である可能性があるため、気にすることをやめました。)
Grepは、次のバイナリ一致を見つける必要があります。
find /path/to/dir -name '*.doc' exec grep -l "specificword" {} \;