LINUX.ORG.RU

Знатоки SED'a помогите!


0

0
sed -r -n /foo/= filename

вот так я могу получить номера строк в кот. содержится паттерн, а можно ли, чтобы на выходе после номера строки было то, что нашлось по паттерну, ну т.е. примерно так:

2 foo 5 foo 7 foo и т.д.

зараннее благодарен :)


Ответ на: комментарий от STrange
жопу ты наджаком вытираешь или все таки бумагой?
anonymous
()
Хорошее сравнение :) Ладно уговорил, grep помог, только не могу понять как вывести не строку целиком, а именно то что найдено по паттерну.. Может подскажешь?
STrange
() автор топика
Все, разобрался..

Если все же кто-то знает как это сделать sed'ом буду благодарен за подсказку :)

anonymous
()
echo -en "zhopa popa\npopo zhopa\npopo popa\n1\n2\n3\n4\n" | sed = | sed 'N; s/\n/\$/g' | sed -re 's/(^[[:digit:]]+)(\$)(.*)(popa)(.*)/\1: \4/' | sed -re '/^[[:digit:]]\$/d'

Но это извращение :) grep -n тут надо :)

vinni_puh
()
Ответ на: комментарий от vinni_puh
Небольшие коррекции :))))

Вместо:

echo -en "zhopa popa\npopo zhopa\npopo popa\n1\n2\n3\n4\n" | sed = | sed 'N; s/\n/\$/g' | sed -re 's/(^[[:digit:]]+)(\$)(.*)(popa)(.*)/\1: \4/' | sed -re '/^[[:digit:]]\$/d'

Читать:

echo -en "zhopa popa\npopo zhopa\npopo popa\n1\n2\n3\n4\n" | sed = | sed 'N; s/\n/\$/g' | sed -re 's/(^[[:digit:]]+)(\$)(.*)(popa)(.*)/\1: \4/' | sed -re '/^[[:digit:]]+\$/d'

vinni_puh
()
sed -n '/event/{=;p}' filename | sed 'N;s/\n/ /'
anonymous
()
Ответ на: комментарий от STrange
>grep помог, только не могу понять как вывести не строку целиком, а именно то что найдено по паттерну

опция "-o"

frame ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.