Tenho um arquivo str.txt
com os seguintes registros de amostra.
31,2713810299,1,11-Aug-15 19:52:10 32,2713810833,1,11-Aug-15 21:36:18
Agora, quero imprimir a saída com awk como abaixo.
cat str.txt|awk -F, "{print substr("$4",1,9)}" -
A saída deve ser :
"11-Aug-15" "11-Aug-15"
Resposta
uma aspa simples seria \x27
awk -F, "{print "\x27"substr($4,1,9)"\x27" }"
Comentários
- Use octal
\047
para'
, não hex\x27
. Consulte awk.freeshell.org/PrintASingleQuote . - \ x22 para aspas duplas (no caso de você precisar)
Resposta
POSIXly:
awk -F"[ ,]" -v q=""" "{print q$4q}" <file
Resposta
Uma abordagem ligeiramente diferente, para POSIX Awk:
awk -F"[, ]" "{printf "\047%s\047\n", $4}" file "11-Aug-15" "11-Aug-15"
Resposta
Você pode usar o comando awk
como este:
cat str.txt|awk -F, "{print substr($4,1,9)}" -
Para obter o seguinte resultado:
11-Aug-15 11-Aug-15
Se as aspas simples exigirem o início e o fim das linhas, então:
cat str.txt|awk -F, "{printf "\047%s\047\n",substr($4,1,9)}" -
Para obter o seguinte resultado:
"11-Aug-15" "11-Aug-15"
Comentários
- Nenhum as citações são impressas, e a pergunta especifica …
- @jasonwryan: verifique a resposta atualizada de acordo com o requisito.