Ich habe einige Ausgabe wie folgt aus ls -alth
:Wie Regex mit Schnitt in der Befehlszeile verwenden?
drwxr-xr-x 5 root admin 170B Aug 3 2016 ..
drwxr-xr-x 5 root admin 70B Aug 3 2016 ..
drwxr-xr-x 5 root admin 3B Aug 3 2016 ..
drwxr-xr-x 5 root admin 9M Aug 3 2016 ..
Nun, ich möchte den 170B
Teil parsen, was natürlich die Größe in lesbarer Form ist. Ich wollte dies mit oder sed
tun, weil ich keine komplizierteren/schwierigeren Werkzeuge als nötig verwenden möchte.
Im Idealfall möchte ich es robust genug sein, um die B
, M
oder K
Suffix, das mit der Größe kommt zu handhaben, und vermehren sich entsprechend von 1
, 1000000
und 1000
entsprechend. Ich habe jedoch keinen guten Weg gefunden, das zu tun.
Ich habe ein paar Dinge ausprobiert, ohne wirklich den besten Ansatz zu wissen:
ls -alth | cut -f 5 -d \s+
Ich hoffte, dass das funktionieren würde, weil ich in der Lage sein würde, um es nur auf einem zu begrenzen oder mehr Leerzeichen.
Aber das funktioniert nicht. Wie liefere ich mit einem Regex-Begrenzer? Oder gibt es eine einfachere Möglichkeit, nur die Größe der Datei aus ls -alth
zu extrahieren?
Ich verwende CentOS6.4
Warum nicht einfach 'ls -alth | cut -d“ "-f5' ..? –
Ich habe eigentlich nie von dieser Option gehört. Das funktioniert nicht, weil es auf eine beliebige Anzahl von Leerzeichen aufgeteilt werden muss. Ihr Beispiel teilt sich nur auf ein Leerzeichen auf. Ich fügte der Frage einige weitere Beispielzeilen hinzu, um es ein wenig klarer zu machen. – guimption
OK dann ... Was ist mit 'ls -alth | awk' {print $ 5} ''? Dies funktioniert standardmäßig mit jedem Leerzeichen. By the way, auch mit Cut funktioniert in meinem Debian. –