在带有 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