jak wydrukować znak cudzysłowu w awk

Mam plik str.txt z następującymi przykładowymi rekordami.

31,2713810299,1,11-Aug-15 19:52:10 32,2713810833,1,11-Aug-15 21:36:18 

Teraz chcę wydrukować wynik z awk, jak poniżej.

cat str.txt|awk -F, "{print substr("$4",1,9)}" - 

Wynik powinien być :

"11-Aug-15" "11-Aug-15" 

Odpowiedź

pojedynczy cudzysłów to \x27

awk -F, "{print "\x27"substr($4,1,9)"\x27" }" 

Komentarze

Odpowiedź

POSIXly:

awk -F"[ ,]" -v q=""" "{print q$4q}" <file 

Odpowiedź

Nieco inne podejście, dla POSIX Awk:

awk -F"[, ]" "{printf "\047%s\047\n", $4}" file "11-Aug-15" "11-Aug-15" 

Odpowiedź

Możesz użyć polecenia awk w ten sposób:

cat str.txt|awk -F, "{print substr($4,1,9)}" - 

Aby uzyskać następujące dane wyjściowe:

11-Aug-15 11-Aug-15 

Jeśli pojedyncze cudzysłowy wymagają na początku i na końcu linii, to:

cat str.txt|awk -F, "{printf "\047%s\047\n",substr($4,1,9)}" - 

Aby uzyskać następujące wyniki:

"11-Aug-15" "11-Aug-15" 

Komentarze

  • Żaden drukowane są cudzysłowy, które określa pytanie …
  • @jasonwryan: Sprawdź odpowiedź zaktualizowaną zgodnie z wymaganiami.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *