递归显示文件名的cat命令

5

我想递归地将多个同名文件合并到另一个文件中。之前有一个问题 "Recursive cat all the files into single file" 帮助我入门。然而,我希望实现每个文件在文件名和路径前都有前缀,并且不同的文件最好用空行或 ----- 等分隔开。因此,生成的文件应该如下所示:

files/pipo1/foo.txt
flim 
flam 
floo

files/pipo2/foo.txt
plim
plam
ploo

在bash中有没有实现这个的方法?

您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Hot Licks
1个回答

5
当然可以!不需要仅仅使用cat命令来查看文件内容,你可以通过一系列的命令来打印文件名、查看文件内容,并在最后添加一个换行符:
find . -name 'foo.txt' \
  -print \
  -exec cat {} \; \
  -printf "\n"

2
请注意,-printf 不属于 POSIX。如果需要 POSIX 解决方案,您将不得不使用 -exec echo \; 或类似的东西进行替换。 - gniourf_gniourf
非常感谢你们两位优秀的绅士,这个程序运行得非常好 :-) @Hot Licks - LOL :D - Peregrino69
3
find . -name 'foo.txt' -print -exec cat {} \; -exec echo \; - flywire

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接