![完全显示目录中的所有文件 --- 但它们之间有一些间距](https://linux22.com/image/139740/%E5%AE%8C%E5%85%A8%E6%98%BE%E7%A4%BA%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6%20---%20%E4%BD%86%E5%AE%83%E4%BB%AC%E4%B9%8B%E9%97%B4%E6%9C%89%E4%B8%80%E4%BA%9B%E9%97%B4%E8%B7%9D.png)
在带有 Bash 3.2.52 的 CentOS 中,我希望完全显示当前目录中的所有文件:
cat *
所有文件的输出都在显示,但它们完全是并置的一个对另一个...
我缺少一些装饰性的间距,这样可以方便理解哪个文件从哪里开始。
反而:
file-output_1
file-output_2
我想说:
file_output_1
file_output_2
我如何改进 cat 和 shell glob 命令,以便每个文件输出(也许除了最后一个)下面都有一些空格,比如 1 或 2 个空行)?
答案1
如果您不介意获取文件名标头以及间距,那么至少可以使用head
/的 GNU Coreutils 实现tail
tail -n +1 *
或者
head -n -0 *
答案2
您可以使用该more
命令而不是cat
.例如:
$ touch file{01..05}
$ for i in {01..05};do echo string$i > file$i;done
$ ll
total 40
-rw-rw-r-- 1 vagrant vagrant 9 Sep 6 20:38 file01
-rw-rw-r-- 1 vagrant vagrant 9 Sep 6 20:38 file02
-rw-rw-r-- 1 vagrant vagrant 9 Sep 6 20:38 file03
-rw-rw-r-- 1 vagrant vagrant 9 Sep 6 20:38 file04
-rw-rw-r-- 1 vagrant vagrant 9 Sep 6 20:38 file05
现在使用more
:
$ more file*
::::::::::::::
file01
::::::::::::::
string1
::::::::::::::
file02
::::::::::::::
string2
::::::::::::::
file03
::::::::::::::
string3
::::::::::::::
file04
::::::::::::::
string4
::::::::::::::
file05
::::::::::::::
string5