Jak usunąć wszystkie znaki w jednym wierszu po „]” za pomocą sed?


13

Jak usunąć wszystkie znaki w jednym wierszu po „]” za pomocą sed?

Próbuję grep jakiś plik za pomocą cat, awk. Teraz mój oneliner zwraca mi coś takiego

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

Teraz chcę usunąć wszystko po znaku „]” (za pomocą „]”). Chcę tylko 121.122.121.111w mojej produkcji.

Googlowałem po tym konkretnym przykładzie sed, ale nie znalazłem żadnej pomocy w tych przykładach.

Odpowiedzi:


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

Więc jeśli masz taki plik pełen linii, możesz to zrobić

 sed 's/].*//' filename


3

Coś jak

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

powinien robić co chcesz. \(.*\)]Będzie przechwytywać cały tekst aż do ]do zapamiętanego wzorca, a następnie \1substytutów go na całej linii.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.