hoe aanhalingstekens in awk

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

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.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *