it-swarm.com.de

So fügen Sie eine neue Zeile zwischen den Ausgaben `ls -l` hinzu

Dies ist Standard ls -l Ausgabe.

[email protected]:~$ 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
[email protected]:~$ 

Wäre es möglich, eine neue Zeile wie diese hinzuzufügen?

-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
13
Sabrina
ls -l | sed G

(dieses ist eine gebräuchliche Redewendung und in den sed FAQ ).

Oder (wahrscheinlich schneller, spielt wahrscheinlich keine Rolle für die (wahrscheinlich kurze) Ausgabe von ls -l):

ls -l | paste -d '\n' - /dev/null

Diese fügen nach jeder Zeile der Ausgabe von ls -l Eine Leerzeile ein.

Wenn Sie nun nach jeder durch ls -l Beschriebenen Datei eine leere Zeile wünschen, die sich von Dateien unterscheidet, deren Name Zeilenumbruchzeichen enthält, müssen Sie Folgendes tun:

for f in *; do ls -ld -- "$f" && echo; done

(was auch die Zeile total überspringen würde).

Oder Sie könnten ls -ql Verwenden, um sicherzustellen, dass Sie eine Zeile pro Datei erhalten (die Zeilenumbrüche werden wie alle Steuerzeichen als ? Gerendert (zumindest im POSIX-Gebietsschema)).

21

Verwenden von awk:

ls -l | awk '{printf "%s\n\n", $0}'
6
jesse_b
NAME
       pr - convert text files for printing

Verschachtelung mit einer einzelnen leeren Zeile ohne Hinzufügen eines Headers:

… | pr -dt

4
poige

Einer noch:

ls (options) | while read LINE; do
  echo "$LINE
"
done
2
WGroleau