L'analyse de la pipe délimité entrée dans awk
Avons vu de nombreux postes de poser la même question. Ne pouvez pas obtenir de travail.
Entrée ressemble:
<field one with spaces>|<field two with spaces>
Essayer d'analyser avec awk.
Ont essayé de nombreuses variantes de super messages:
FS = "^[\x00- ]*|[\x00- ]*[|][\x00- ]*|[\x00- ]*$";
FS = "^[\x00- ]*|[\x00- ]*\|[\x00- ]*|[\x00- ]*$";
FS = "^[\x00- ]*|[\x00- ]*\\|[\x00- ]*|[\x00- ]*$";
Toujours pas le tube séparateur de travail.
À L'Aide De CentOS.
Toute aide?
OriginalL'auteur scorpdaddy | 2011-08-02
Vous devez vous connecter pour publier un commentaire.
Vous pouvez également réduire ce
Modifier
Aussi, pas tous les awks pouvez prendre une multi-caractère regex pour le
FS
valeur.Edit2
En quelque sorte j'ai manqué cette origine, mais je vois que vous essayez d'inclure
\x00
dans le char classes pré et post de la|
char. Je suppose que vous voulez dire pour\x00
==null
char? Je ne pense pas que vous allez être en mesure d'avoirawk
analyser un fichier avec des caractères null intégré. Vous pourriez prep-processus de votre entrée commeOU de les supprimer avec
et d'éliminer la partie de votre regex. Mais comme ci-dessus, certains
awk
ne supportent pas les regex pour leFS
valeur. Et, je n'utilise pas letr
truc très bien, vous pouvez trouver qu'il nécessite un peu différente de la notation de lanull
char, selon votre version detr
.J'espère que cette aide.
\x00
. Ou l'op doit utiliser un outil spécialisé commeperl
ouruby
. ++I don't think you're going to be able to have awk parse a file with null chars embedded
Ou une seconde pensée?awk '{gsub("\x00","")}1
est possible.OriginalL'auteur shellter