awkはサブディレクトリのファイルを検索しませんか?

awkはサブディレクトリのファイルを検索しませんか?

awkを使用して複数のファイルから特定の文字列を検索しようとしたときに返されます。

'Example' is a directory: skipped.

awkを使用してすべてのサブディレクトリとファイルを検索する方法は?

使用例、

awk -F: '$3 ~ /example/' * > C:/out.txt

ベストアンサー1

これはシェルワイルドカードの問題であり、awk再帰的にglobするにはbashglobstarオプションを有効にする必要があります。

shopt -s globstar

グローバルスター

設定されている場合、パス名拡張コンテキスト**で使用されるパターンは、すべてのファイルとゼロ以上のディレクトリとサブディレクトリと一致します。パターンの後に/が続くと、ディレクトリとサブディレクトリのみが一致します。

これにより、次のことができます。

awk -F: '$3 ~ /example/' ** > C:/out.txt

ディレクトリ自体をスキップするエラーはまだ発生しますが、そのディレクトリでも繰り返されます。 stderrを/ dev / nullにリダイレクトすることでエラーを隠すことができます。

awk -F: '$3 ~ /example/' ** > C:/out.txt 2>/dev/null

おすすめ記事