2016-07-19 9 views
-1

Ich kann die vollständige Zeichenfolge nicht mit awk abrufen. Zum Beispiel hat File.txt,Vollständige Zeichenfolge mit awk abrufen

C1 C2 C3 
A B 'A B C' 
C D 'D E F' 

Wenn ich Code unten verwenden,

awk '{print $1 "," $3}' File.txt 

Ich erhalte Ausgabe als,

A,'A 
C,'D 

Erwartete ausgegeben wird,

A,'A B C' 
C,'D E F 
+0

Sind Sie sicher, dass Ihre Dateiinhalte korrekt formatiert/Zeilenumbrüche sind? für mich wäre $ 1 C1 und $ 3 wäre C3? –

+0

Formatierung hat nicht funktioniert. – Rock

+0

Bitte lesen Sie die Formatierungshilfe und lassen Sie sie funktionieren - Sie können nicht erwarten, dass wir raten, was die Eingabe wäre? –

Antwort

1
abgrenzen
awk '{print $1 "," $3,$4,$5}' file 
A,'A B C' 
C,'D E F' 
+0

Ich habe schon mit $ 3, $ 4, $ 5 probiert. Ein anderer Weg wie dieser ist für längere Strings nicht möglich – Rock

2

Der Standard de Zentimeter für awk ist Platz. Da Ihre Daten Registerkarte hat, sollten Sie mit '\ t'

datei.txt

A B 'A B C' 
C D 'D E F' 

awk

awk '{BEGIN FS="\t"}{print $1 "," $3}' <file.txt 

Ausgang

A,'A B C' 
C,'D E F'