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.111
dans ma sortie.
Je cherchais cet exemple particulier de sed, mais je n'ai trouvé aucune aide dans ces exemples.
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
Que diriez-vous de cut
à la place:
cat logfile | cut -d "]" -f1
Quelque chose comme
sed 's|\(.*\)\] .*$|\1|'
devrait faire ce que vous voulez. La \(.*\)]
capturera tout le texte jusqu'au ]
Dans un modèle mémorisé, puis le \1
Le remplacera pour toute la ligne.