这是标准ls -l
输出。
user@linux:~$ ls -l
total 0
-rw-rw-r-- 1 user user 0 Nov 1 00:00 file01
-rw-rw-r-- 1 user user 0 Nov 1 00:00 file02
-rw-rw-r-- 1 user user 0 Nov 1 00:00 file03
user@linux:~$
是否可以像这样添加新行?
-rw-rw-r-- 1 user user 0 Nov 1 00:00 file01
-rw-rw-r-- 1 user user 0 Nov 1 00:00 file02
-rw-rw-r-- 1 user user 0 Nov 1 00:00 file03
答案1
ls -l | sed G
(这是一个常见的习语,关于sed
常见问题解答)。
或者(可能更快,对于 的(可能很短)输出可能并不重要ls -l
):
ls -l | paste -d '\n' - /dev/null
那些在每个之后插入一个空行线的输出ls -l
。
现在,如果您希望在 描述的每个文件后有一个空行(ls -l
如果存在名称包含换行符的文件,则情况会有所不同),您必须执行以下操作:
for f in *; do ls -ld -- "$f" && echo; done
(这也会跳过该total
行)。
或者您可以使用ls -ql
它来确保每个文件一行(换行符,就像所有控制字符一样,将被呈现为?
(至少在 POSIX 语言环境中))。
答案2
使用awk
:
ls -l | awk '{printf "%s\n\n", $0}'
答案3
NAME
pr - convert text files for printing
与单个空行交错,不添加标题:
… | pr -dt
答案4
多一个:
ls (options) | while read LINE; do
echo "$LINE
"
done