2016-08-04 29 views
-2

Hier sind einige Abtastwerteingang ich tun ls -l erhalten:bestimmte Spalten aus einem Datensatz mit nur ‚sed‘ ohne ‚awk‘

-rwxr-xr-x 1 root root 1779 Jan 10 2014 zcmp 
-rwxr-xr-x 1 root root 5766 Jan 10 2014 zdiff 
-rwxr-xr-x 1 root root  142 Jan 10 2014 zegrep 
-rwxr-xr-x 1 root root  142 Jan 10 2014 zfgrep 
-rwxr-xr-x 1 root root 2133 Jan 10 2014 zforce 
-rwxr-xr-x 1 root root 5940 Jan 10 2014 zgrep 
lrwxrwxrwx 1 root root  8 Dec 5 2015 ypdomainname -> hostname 

Ich möchte aus der letzten Spalte und 5. Spalte drucken, mit NUR sed wie folgt aus:

zcmp 1779 
zdiff 5766 
zegrep 142 
zfgrep 142 
zforce 2133 
zgrep 5940 
ypdomainname -> hostname 8 

ich versuche, einen regulären Ausdruck zu finden, aber passen nicht gelungen. Und ich darf auch nicht awk oder verwenden. Vielen Dank im Voraus.

+3

"nicht erlaubt" klingt viel mehr nach Hausaufgaben als nach einer Frage, wie man eine praktische Aufgabe erledigen kann. –

+1

Und wir sind nicht hier, um es für Sie zu tun, wir sind hier, um Ihnen zu helfen, Ihren Code zu reparieren. Aktualisieren Sie Ihr Q mit Ihrem besten Versuch, das Problem zu lösen, Ihre aktuelle Ausgabe, alle Fehlermeldungen und eine allgemeine Beschreibung, warum Sie denken, dass Code funktioniert (oder warum nicht), und Sie werden wahrscheinlich Hilfe bekommen. Viel Glück. – shellter

+1

Denken Sie auch darüber nach, wie Ihre Antwort mit 'sed' die Situation angehen wird, wenn im Namen einiger Dateien Platz ist. –

Antwort

-1

Versuchen Sie dies;

ls -l | sed -r 's/^(\S+\s+){5}(\S+\s+){3}/\1/' | sed 's/^\(.*\) \(.*\)$/\2\ \1/g' 
Verwandte Themen