Назад | Перейти на главную страницу

Как удалить все символы в одной строке после «]» с помощью sed?

Как удалить все символы в одной строке после "]" с помощью sed?

Я пытаюсь найти какой-то файл с помощью cat, awk. Теперь мой лайнер возвращает мне что-то вроде

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

Теперь я хочу удалить все после символа «]» (с «]»). Я хочу только 121.122.121.111 в моем выводе.

Я искал этот конкретный пример sed, но не нашел никакой помощи в этих примерах.

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

Итак, если у вас есть файл, полный таких строк, вы можете сделать

 sed 's/].*//' filename

Как насчет cut вместо:

cat logfile | cut -d "]" -f1

Что-то вроде

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

должен делать то, что хочешь. В \(.*\)] захватит весь текст до ] в запомненный образец, а затем \1 заменяет его на всю строку.