ik heb een bestand str.txt
met de volgende voorbeeldrecords.
31,2713810299,1,11-Aug-15 19:52:10 32,2713810833,1,11-Aug-15 21:36:18
Nu wil ik uitvoer afdrukken met awk zoals hieronder.
cat str.txt|awk -F, "{print substr("$4",1,9)}" -
De uitvoer zou moeten zijn :
"11-Aug-15" "11-Aug-15"
Antwoord
een enkel aanhalingsteken zou
awk -F, "{print "\x27"substr($4,1,9)"\x27" }"
Reacties
- Gebruik octaal
\047
voor'
, niet hex\x27
. Zie awk.freeshell.org/PrintASingleQuote . - \ x22 voor dubbele aanhalingstekens (voor het geval je het nodig hebt)
Antwoord
POSIXly:
awk -F"[ ,]" -v q=""" "{print q$4q}" <file
Antwoord
Een iets andere benadering, voor POSIX Awk:
awk -F"[, ]" "{printf "\047%s\047\n", $4}" file "11-Aug-15" "11-Aug-15"
Antwoord
Je zou het awk
commando als volgt kunnen gebruiken:
cat str.txt|awk -F, "{print substr($4,1,9)}" -
Om de volgende uitvoer te krijgen:
11-Aug-15 11-Aug-15
Als enkele aanhalingstekens vereist zijn aan het begin en einde van regels, dan:
cat str.txt|awk -F, "{printf "\047%s\047\n",substr($4,1,9)}" -
Om de volgende uitvoer te krijgen:
"11-Aug-15" "11-Aug-15"
Reacties
- Geen enkele aanhalingstekens worden afgedrukt, die de vraag specificeert …
- @jasonwryan: controleer het antwoord bijgewerkt volgens de vereiste.