"ls -l"出力間に新しい行を追加する方法

"ls -l"出力間に新しい行を追加する方法

これは標準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これを使用してファイルごとに1行ずつ保証することもできます(すべての制御文字と同様に改行文字がレンダリングされます?(少なくとも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

関連情報