如何输出多个文件的内容(前面带有文件名)?

如何输出多个文件的内容(前面带有文件名)?

我正在寻找类似的命令

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

或者

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

但在每个文件的内容之前给我文件的路径。

答案1

这样做的优点是每次运行仅生成一个 awk:

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

awk主体的含义:

  • FNR==1{print FILENAME}:对于找到的每个文件的第一行,打印其路径。
  • 1:对于每一行,打印它。

答案2

尝试以下命令:

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

答案3

我发现这实际上比我想象的要简单:

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

相关内容