2013-09-11 16 views
6

Ich habe eine Textdatei, ich möchte nur die erste Spalte und die letzte Spalte. Doch das Problem ist, dass sie sowohl von Leerzeichen und Tabulatoren an zufälligen Stellen getrennt sind, so dass es schwer für mich cutErste und letzte Spalte aus der Textdatei extrahieren

USER02163 name BAD 
USER5415 ab lsi ei GOOD 
USER15356 sl oe ow BAD 

gewünschte Ausgabe zu verwenden ist:

USER02163 BAD 
USER5415 GOOD 
USER15356 BAD 

Hat jemand eine hacky Weise kann ich bekomme meine gewünschte Ausgabe?

Antwort

12

Am einfachsten mit awk. Der Befehl lautet:

awk '{print $1, $NF}' filename 
1

Wenn Sie Feldtrenn als Raum in awk angeben wird es einzelne und mehrere Leerzeichen enthalten. So können Sie wie folgt verwenden,

awk -F " " '{print $1,$NF}' file 

Gleiche wie unxnut Antwort. Hinzugefügt mit Feldseparator, der klare Einblicke gibt.

1

verwenden Sed Befehl

$ sed -r 's/([^ ]*) (.*) (.*$)/\1 \3/' filename 

Der Ausgang ist:

USER02163 BAD 
    USER5415 GOOD 
    USER15356 BAD 
Verwandte Themen