是否有命令在 cat 文件时显示目录/文件名?
例如:假设两个文件 f1.txt 和 f2.txt 在 ./tmp 下
./tmp/f1.txt
./tmp/f2.txt
Run Code Online (Sandbox Code Playgroud)
然后当我做cat ./tmp/*.txt 时,只会显示文件的内容。但是如何首先显示文件名,然后显示内容?,例如:
(The needed command):
./tmp/f1.txt:
This is from f1.txt
and so on
./tmp/f1.txt:
This is from f2.txt ...
Run Code Online (Sandbox Code Playgroud)
有命令可以执行吗?(“cat”似乎没有显示文件名的选项)
Ran*_*832 26
就像另一个想法一样,尝试 tail -n +1 ./tmp/*.txt
==> file1.txt <==
<contents of file1.txt>
==> file2.txt <==
<contents of file2.txt>
==> file3.txt <==
<contents of file3.txt>
Run Code Online (Sandbox Code Playgroud)
$ for file in ./tmp/*.txt; do echo "$file"; cat "$file"; done
Run Code Online (Sandbox Code Playgroud)
-或者-
$ find ./tmp -maxdepth 1 -name "*.txt" -print -exec cat "{}" \;
Run Code Online (Sandbox Code Playgroud)
不完全符合您的要求,但您可以在每一行前面加上文件名前缀:
$ grep '^' ./tmp/*.txt
./tmp/f1.txt: this is from f1.txt
./tmp/f1.txt: blaa, blaa, blaa...
./tmp/f1.txt: blaa, blaa, blaa...
./tmp/f2.txt: this is from f2.txt
./tmp/f2.txt: blaa, blaa, blaa...
./tmp/f2.txt: blaa, blaa, blaa...
Run Code Online (Sandbox Code Playgroud)
如果不借助一些脚本,很难做得比这更好。