Bash

完全顯示目錄中的所有文件 — 但它們之間有一些間距

  • September 7, 2018

在帶有 Bash 3.2.52 的 CentOS 中,我希望完全顯示目前目錄中的所有文件:

cat *

所有文件的輸出都在顯示,但它們完全並列在一起……

我在那裡缺少一些裝飾性的間距,這將有助於理解哪個文件從哪裡開始。

反而:

file-output_1
file-output_2

我想說:

file_output_1

file_output_2

我怎樣才能改進 cat 和 shell glob 命令,以便每個文件輸出(可能除了最後一個)下面都有一些間距,比如 1 或 2 個空行)?

如果您不介意獲取文件名標題和間距,那麼至少使用head/的 GNU Coreutils 實現tail可以做到

tail -n +1 *

或者

head -n -0 *

您可以使用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

引用自:https://unix.stackexchange.com/questions/467409