Wie kann die Ausgabe von ls -l
geändert werden, um Felder mithilfe von Tabulatoren anstelle von Leerzeichen zu trennen? Ich möchte die Ausgabe in eine Tabelle einfügen. Die Polsterung mit einer variablen Anzahl von Leerzeichen macht dies schwierig. Um zu veranschaulichen:
drwxr-xr-x 2 root root 4096 26. September 11:43 wpa_supplicant -rw-r ----- 1 Root-Dialout 66 26. September 11:43 wvdial.conf drwxr-xr-x 9 root root 4096 8. Oktober 08:21 X11 drwxr-xr-x 12 root root 4096 18. Februar 23:31 xdg drwxr-xr-x 2 root root 4096 31. Januar 06:11 xml drwxr-xr-x 2 root root 4096 22. November 07:26 xul-ext -rw-r - r-- 1 root root 349 13. Januar 2012 zsh_command_not_found
In dem ls -l /etc
oben gezeigten Auszug haben die Zeilen 1, 2 und 3 eine einzelne Ziffer in Spalte 2, während Zeile 4 zwei hat. Das heißt, die Ausrichtung wird erreicht, indem zwei Leerzeichen zum Trennen der Spalten 1 und 2 in den Zeilen 1 bis 3 verwendet werden, jedoch nur ein Leerzeichen in Zeile 4.
ls
gesagt wird , ist das Parsen der Ausgabe in Ordnung. Das ist selten das Ziel. Wohl ist es hier. Ich denke , die Methode , die Sie verwendet haben , ist ziemlich gut (jedes Verfahren wird gegeben unerwünschten Ergebnissen führen einige Reihe von Bedürfnissen)! Das Parsenls
könnte jedoch besser sein. Stellen Sie sich den Fall eines Dateinamens vor, der tatsächlich ein Tabulatorzeichen enthält.ls -l
Ersetzt die Registerkarte durch ein?
Zeichen. Ihr Skript behält das Tabulatorzeichen bei, wodurch zusätzliche Spalten erstellt werden, wenn die Ausgabe als tabulatorgetrennt interpretiert und zum Erstellen einer Tabelle verwendet wird. Es verschlechtert sich stark, wenn ein Dateiname eine neue Zeile hat.