Как удалить все символы в одной строке после "]" с помощью 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
заменяет его на всю строку.