Auswählen von Spalten, die mit awk gedruckt werden sollen
Eine Methode wäre, die Ausgabe von zu analysieren ls
.
Beispiel
$ ls -lah | awk '{print $9, $5}' | tail -5
.yEd 4.0K
.youtube-dl 4.0K
.zenmap 4.0K
.zshrc 32
zzzz 3.3K
Übrigens können Sie die Ausgabe mit bereinigen column
.
$ ls -lah | awk '{print $9, $5}' | column -t | tail -5
z 4
.youtube-dl 4.0K
.zenmap 4.0K
.zshrc 32
zzzz 3.3K
Spalten auswählen, die mit awk entfernt werden sollen
Wenn Sie lieber die anderen Spalten entfernen möchten, während Sie andere beibehalten, können Sie diese awk
Methode verwenden, um die unerwünschten Spalten auszublenden.
Beispiel
$ ls -lah | awk '{$1=$2=$3=$4=$6=$7=$8=""}1' | tail -5
4.0K .youtube-dl
4 z -> zzzz
4.0K .zenmap
32 .zshrc
3.3K zzzz
Endgültige Lösung
Das OP hat diese Befehlskette anhand einer Mischung der obigen Beispiele entwickelt.
$ ls -lah | awk '{print $5, $9$10$11}' | column -t | column
...
4.0K .gphoto 773 .rdebug_hist 4.0K .youtube-dl
1.5K .grip 4.0K .rdesktop 4 z->zzzz
ls -lah | awk '{print $5, $9$10$11}'|column
bekomme ich was ich wolltecolumn
ls -lahQ
stattdessen Dateinamen zitierenVon der Manpage:
Also für vom Menschen lesbare Größen:
quelle
ls -ash
Eine schnelle und schmutzige Möglichkeit besteht darin, die Ausgabe von
ls -lah
mit ein paar anderen Befehlen zu kombinieren :Der
tr -s
Befehl ersetzt mehrere Leerzeichen durch einzelne Leerzeichen undcut -d' ' -f5,9-
druckt die Spalten 5 und 9 (und darüber hinaus). Dies9-
ist erforderlich, um zusätzliche durch Leerzeichen getrennte Spalten zu berücksichtigen, die durch Symlinks erzeugt werden.quelle
ls -lah | tr -s ' ' | cut -d' ' -f5,9- | column -t | column
Das Beste, was Sie nur erreichen können,
ls
ist, die Benutzer- und Gruppenspalten mit zu unterdrückenls -log
. Wenn Sie weiter gehen möchten, können Sie die Ausgabe analysieren. Beachten Sie, dass die zweite Spalte (die Anzahl der Links) eine variable Breite hat. Das folgende Shell-Snippet achtet darauf, die Spaltenausrichtung beizubehalten, mit beliebigen Dateinamen umzugehen (mit Ausnahme von Zeilenumbrüchen, wenn diese wörtlich übergeben werden) und die Ausgabe in Farbe anzuzeigen (entfernen Sie diesen Teil, wenn Sie keine GNU-Coreutils ausführen).quelle
column
der richtige Weg.ls -halog --color=no | sed 's/^[^ ][^ ]* *[^ ][^ ]* \( *[^ ][^ ]*\) ............/\1/'|column
awk
ist leichter zu merken