Як видалити всі символи в одному рядку після “]” за допомогою sed?


13

Як видалити всі символи в одному рядку після "]" з sed?

Я намагаюся зігнути якийсь файл за допомогою cat, awk. Тепер мій oneliner повертає мені щось на кшталт

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

Тепер я хочу видалити всі символи після "]" (з "]"). Я хочу лише 121.122.121.111у своєму виході.

Я гуглив на конкретний приклад sed, але не знайшов допомоги в цих прикладах.

Відповіді:


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

Тож якщо у вас є файл, повний таких рядків, який ви можете зробити

 sed 's/].*//' filename


3

Щось на зразок

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

слід робити те, що ти хочеш. \(.*\)]Буде захоплювати весь текст аж до ]в запам'ятовується малюнок , а потім \1замінює його в протягом всієї лінії.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.