Am un fișier str.txt
cu următoarele exemple de înregistrări.
31,2713810299,1,11-Aug-15 19:52:10 32,2713810833,1,11-Aug-15 21:36:18
Acum vreau să imprim imprimarea cu awk ca mai jos.
cat str.txt|awk -F, "{print substr("$4",1,9)}" -
Rezultatul ar trebui să fie :
"11-Aug-15" "11-Aug-15"
Răspuns
un singur ghilimel ar fi \x27
awk -F, "{print "\x27"substr($4,1,9)"\x27" }"
Comentarii
- Utilizați octal
\047
pentru'
, nu hex\x27
. Consultați awk.freeshell.org/PrintASingleQuote . - \ x22 pentru cota dublă (în cazul în care aveți nevoie de ea)
Răspuns
POSIXly:
awk -F"[ ,]" -v q=""" "{print q$4q}" <file
Răspuns
O abordare ușor diferită, pentru POSIX Awk:
awk -F"[, ]" "{printf "\047%s\047\n", $4}" file "11-Aug-15" "11-Aug-15"
Răspuns
Puteți utiliza comanda awk
astfel:
cat str.txt|awk -F, "{print substr($4,1,9)}" -
Pentru a obține următoarea ieșire:
11-Aug-15 11-Aug-15
Dacă ghilimelele simple necesită la începutul și la sfârșitul liniilor, atunci:
cat str.txt|awk -F, "{printf "\047%s\047\n",substr($4,1,9)}" -
Pentru a obține următoarea ieșire:
"11-Aug-15" "11-Aug-15"
Comentarii
- Niciunul sunt tipărite ghilimelele, pe care întrebarea le specifică …
- @jasonwryan: Vă rugăm să verificați răspunsul actualizat conform cerințelor.