Comment supprimer tous les caractères sur une ligne après «]» avec sed?


13

Comment supprimer tous les caractères sur une ligne après "]" avec sed?

Im essayant de grep un fichier en utilisant cat, awk. Maintenant, mon oneliner me renvoie quelque chose comme

121.122.121.111] other characters in logs from sendmail.... :)

Maintenant, je veux tout supprimer après le caractère "]" (avec "]"). Je veux seulement 121.122.121.111dans ma sortie.

Je cherchais cet exemple particulier de sed, mais je n'ai trouvé aucune aide dans ces exemples.

Réponses:


20
 echo "121.122.121.111] other characters in logs from sendmail...." | sed 's/].*//' 

Donc, si vous avez un fichier plein de lignes comme ça, vous pouvez le faire

 sed 's/].*//' filename

12

Et à la cutplace:

cat logfile | cut -d "]" -f1

3

Quelque chose comme

sed 's|\(.*\)\] .*$|\1|'

devrait faire ce que vous voulez. Le \(.*\)]va capturer tout le texte jusqu'au ]dans un motif mémorisé, puis le \1substitue à la ligne entière.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.