J'utilise
awk '{ printf "%s", $3 }'
4 Réponses :
Ceci est en fait assez difficile. Je suis venu avec le script awk code> suivant qui scindre la ligne manuellement et stocke tous les champs d'une matrice.
C'est une solution assez complexe. S'il n'y a pas de solution simple une ligne i>, j'irais pour Perl
Affiche votre fichier d'entrée et votre sortie souhaitée la prochaine fois. Pour obtenir des champs indiqués,
$ cat file field1 field2 "field 3" field4 "field5" $ awk -F'"' '{for(i=2;i<=NF;i+=2) print $i}' file field 3 field5
En fait, c'est le journal du serveur Web Apache. Il semble que Awk ne puisse pas le faire facilement.
@mmonem alors cela pourrait être utile: ServerFault.com/Questtions/11028/...
Voici une solution alternative possible à ce problème. Cela fonctionne en trouvant les champs qui commencent ou finissent par des citations, puis rejoignent ceux ensemble. À la fin, il met à jour les champs et nf, donc si vous mettez plus de motifs après celui qui fait la fusion, vous pouvez traiter les champs (nouveaux) à l'aide de toutes les fonctionnalités normales AWK.
Je pense que cela utilise uniquement des fonctionnalités de POSIX Awk et ne s'appuie pas sur des extensions Gawk, mais je ne suis pas complètement sûr. p> sur un fichier d'entrée comme: p> Il produit: p>
Si vous recherchez simplement un champ spécifique, alors fonctionne. Il divise le fichier par ", de sorte que le 2e champ de l'exemple ci-dessus est celui que vous voulez. P> p>
Montrez votre format de fichier d'entrée..et votre sortie souhaitée!