複数のファイルの内容(ファイル名が先頭に付く)を出力するには?

複数のファイルの内容(ファイル名が先頭に付く)を出力するには?

私は次のコマンドを探しています

find -name "*clang*" -exec cat {} \;

または

cat $(find -name "*clang*")

しかし、各ファイルの内容の前にファイルパスを教えてください。

ベストアンサー1

これは、実行ごとに1つのawkのみが生成されるという利点があります。

find . -type f -name '*clang*' -exec awk 'FNR==1{print FILENAME}1' {} +

awk本文の意味:

  • FNR==1{print FILENAME}:見つかった各ファイルの最初の行に対応するパスを印刷します。
  • 1:各行に印刷します。

おすすめ記事