Ich habe eine Datei str.txt
mit den folgenden Beispieldatensätzen.
31,2713810299,1,11-Aug-15 19:52:10 32,2713810833,1,11-Aug-15 21:36:18
Jetzt möchte ich die Ausgabe mit awk wie folgt drucken.
cat str.txt|awk -F, "{print substr("$4",1,9)}" -
Die Ausgabe sollte sein :
"11-Aug-15" "11-Aug-15"
Antwort
Ein einfaches Anführungszeichen wäre \x27
awk -F, "{print "\x27"substr($4,1,9)"\x27" }"
Kommentare
- Verwenden Sie oktale
\047
für'
, nicht hex\x27
. Siehe awk.freeshell.org/PrintASingleQuote . - \ x22 für doppelte Anführungszeichen (falls erforderlich)
Antwort
POSIXly:
awk -F"[ ,]" -v q=""" "{print q$4q}" <file
Antwort
Ein etwas anderer Ansatz für POSIX Awk:
awk -F"[, ]" "{printf "\047%s\047\n", $4}" file "11-Aug-15" "11-Aug-15"
Antwort
Sie können den Befehl awk
folgendermaßen verwenden:
cat str.txt|awk -F, "{print substr($4,1,9)}" -
Um folgende Ausgabe zu erhalten:
11-Aug-15 11-Aug-15
Wenn am Anfang und am Ende von Zeilen einfache Anführungszeichen erforderlich sind, gilt Folgendes:
cat str.txt|awk -F, "{printf "\047%s\047\n",substr($4,1,9)}" -
So erhalten Sie folgende Ausgabe:
"11-Aug-15" "11-Aug-15"
Kommentare
- Keine einzelne Es werden Zitate gedruckt, die in der Frage angegeben sind …
- @jasonwryan: Bitte überprüfen Sie die Antwort entsprechend den Anforderungen.