J'essaie d'ouvrir un fichier journal et de manipuler des lignes si nécessaire. Par exempleProblème de commande de substitution Awk
2010-01-31 00:05:59,400 -0500 | [VHX4077ff8Ze1sTnE-op51V] | [TB-bce11b:-16a2-5ed9f542] | [6C7CA345F63F835CB353FF15BD6C5E052EXX8E7A | [email protected] | 31933782 | 172.9.8.3 | DEVICE_ID_CREATED]
Je dois modifier la colonne 5 et tout supprimer avant la Superfly. Essentiellement supprimer tout ce qui est là et le symbole '@'. Ce fichier aura des entrées où la colonne 5 n'a pas l'entrée numéro @ et cette ligne n'aura pas besoin d'être éditée. Et le nombre pourrait être n'importe quel nombre de chiffres avant le @. J'ai essayé d'utiliser la commande de remplacement d'awk mais je n'arrive pas à la faire fonctionner.
Mon script:
awk -F "|" {' sub(".*@","",$5) print $5 '} test.log
awk: cmd. line:3: print $5
awk: cmd. line:3:^syntax error
Mechs Merci, je reçois toujours une erreur après avoir essayé votre commande: awk: sous ("", 5 $ "* @."); imprimer $ 5 awk:^erreur de syntaxe – roacha
awk -F "|" {'sub (". * @", "", $ 5); print $ 5 '} test.log de ma ligne de commande linux avec vos données d'échantillon donne "SuperFly" Votre interprète awk peut exiger un; après la dernière déclaration aussi awk -F "|" {'sub (". * @", "", $ 5); imprimer 5 $; '} test.log La mienne ne l'a pas fait. –
En tant que FYI, je trouve généralement plus facile d'utiliser le paramètre -f et d'éditer un fichier. C'est plus lisible sur la route et beaucoup d'éditeurs ont pu noter la mauvaise syntaxe. –