Eine Spalte in ls -hal auslassen

Eine Spalte in ls -hal auslassen

Wie kann ich die groupSpalte in der Ausgabe von weglassen ls -hal?

Ich habe es verwendet ls -hal|cut -f4 --complement -d ' 'und es funktioniert die meiste Zeit, aber wenn ich es ausführe, / erhalte ich eine verschlüsselte Ausgabe:

drwxr-xr-x  25 root 4.0K Dec 21 06:08 .
drwxr-xr-x  25 root 4.0K Dec 21 06:08 ..
drwxr-xr-x   root root 4.0K Jan 12 06:17 bin
drwxr-xr-x   root root 4.0K Jan 16 10:36 boot
drwxrwxr-x   root root 4.0K May  1  2018 cdrom
-rw-------   root root  56M May  1  2018 core
drwxr-xr-x  20 root 4.7K Jan  6 17:54 dev
drwxr-xr-x   root root 4.0K Oct  9 15:14 .dotnet
drwxr-xr-x 154 root  12K Jan 16 10:36 etc
drwxr-xr-x   root root 4.0K Nov 24 19:39 home

(Ich kann nicht herausfinden, warum das passiert, ls -halallein gibt

drwxr-xr-x  25 root root 4.0K Dec 21 06:08 .
drwxr-xr-x  25 root root 4.0K Dec 21 06:08 ..
drwxr-xr-x   2 root root 4.0K Jan 12 06:17 bin
drwxr-xr-x   3 root root 4.0K Jan 16 10:36 boot
drwxrwxr-x   2 root root 4.0K May  1  2018 cdrom
-rw-------   1 root root  56M May  1  2018 core
drwxr-xr-x  20 root root 4.7K Jan  6 17:54 dev
drwxr-xr-x 154 root root  12K Jan 16 10:36 etc

)

Ich habe es auch versucht awk '{print $1,$2,$3,$5,$6,$7,$8,$9}', aber dadurch wird immer die Ausrichtung durcheinandergebracht:

drwxr-xr-x 25 root 4.0K Dec 21 06:08 .
drwxr-xr-x 25 root 4.0K Dec 21 06:08 ..
drwxr-xr-x 2 root 4.0K Jan 12 06:17 bin
drwxr-xr-x 3 root 4.0K Jan 16 10:36 boot
drwxrwxr-x 2 root 4.0K May 1 2018 cdrom
-rw------- 1 root 56M May 1 2018 core
drwxr-xr-x 20 root 4.7K Jan 6 17:54 dev

Antwort1

Es gibt spezielle lsOptionen zum Ausblenden der Gruppenspalte.ls(1):

-G,--no-group

in einer langen Auflistung keine Gruppennamen drucken

-o

Gefällt mir -l, aber Gruppeninformationen nicht auflisten

Sie können also entweder ls -haooder verwenden ls -halG.

Antwort2

In Ihrem Fall besteht das Problem darin, dass das Ergebnis mehrere einzelne Leerzeichen enthält. ls -alh /Das bedeutet, dass es sich bei dem Feld 4 um ein anderes handelt.

Sie können die Bereiche zu einem einzigen zusammenfassen:

ls -alh / | sed 's/\s\s*/ /g' | cut -f4 -d' ' --complement

Beachten Sie jedoch, dass dadurch auch alle eventuell vorhandenen doppelten Leerzeichen aus den Dateinamen entfernt werden.

Sie können auch mehr aus dieser Antwort erfahrenHier:

Freundliche Erinnerung, sich die Befehlsoptionen anzusehen. Wie in diesem Fall kann das Ergebnis einfach mit dem von JigglyNaga angegebenen Befehl erreicht werden.

verwandte Informationen