「h」で始まり、「enu」を含むファイル名を見つけるためにファイルディレクトリを検索してみますか?
これが私が今まで持っているものです。 1つのコマンドラインで2つのgrepステートメントを処理する方法がわかりません。
find fs282/path/web/en_US.dic -exec grep "^h" {} \;
答え1
ファイル名を表示するには-name
を使用しますfind
。一般的なファイル名パターンでなければならず、したがってh*enu*
要件と一致する必要があります。
find /some/path -name "h*enu*"
grep
代わりに、ファイルの内容を1行ずつ調べて、パターンに一致する行を見つけることができます。
find /some/path -type f -exec grep '^h.*enu' /dev/null {} +
(出力はファイル名ではなく行になります。)
grep
globワイルドカードではなく正規表現が必要です-name
。また、grep
一致するものを見つけてください。以内に正確に一致するのではなく、行を使用して-name
パターン^
を行の先頭に固定します。/dev/null
一致するファイルが1つしかない場合でも、一致するすべての行のファイル名が常に印刷されるようにします。 GNU実装ではgrep
このオプションを使用できます-H
。