Jai un fichier str.txt
avec les exemples denregistrements suivants.
31,2713810299,1,11-Aug-15 19:52:10 32,2713810833,1,11-Aug-15 21:36:18
Maintenant, je veux imprimer la sortie avec awk comme ci-dessous.
cat str.txt|awk -F, "{print substr("$4",1,9)}" -
La sortie doit être :
"11-Aug-15" "11-Aug-15"
Réponse
un guillemet simple serait \x27
awk -F, "{print "\x27"substr($4,1,9)"\x27" }"
Commentaires
- Utiliser octal
\047
pour'
, pas en hexadécimal\x27
. Voir awk.freeshell.org/PrintASingleQuote . - \ x22 pour les guillemets doubles (au cas où vous en auriez besoin)
Réponse
POSIXly:
awk -F"[ ,]" -v q=""" "{print q$4q}" <file
Réponse
Une approche légèrement différente, pour POSIX Awk:
awk -F"[, ]" "{printf "\047%s\047\n", $4}" file "11-Aug-15" "11-Aug-15"
Réponse
Vous pouvez utiliser la commande awk
comme ceci:
cat str.txt|awk -F, "{print substr($4,1,9)}" -
Pour obtenir la sortie suivante:
11-Aug-15 11-Aug-15
Si les guillemets simples nécessitent au début et à la fin des lignes, alors:
cat str.txt|awk -F, "{printf "\047%s\047\n",substr($4,1,9)}" -
Pour obtenir la sortie suivante:
"11-Aug-15" "11-Aug-15"
Commentaires
- Aucun les citations sont imprimées, ce que la question spécifie …
- @jasonwryan: Veuillez vérifier la réponse mise à jour conformément aux exigences.