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.

B14D3
la source

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
Mike
la source
12

Et à la cutplace:

cat logfile | cut -d "]" -f1
Sven
la source
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.

user9517
la source