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 ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.