LINUX.ORG.RU
ФорумAdmin

Два вопроса про sed

 ,


0

2

Два вопроса про sed:

1) Есть текст вида:
текст | 123
123 | текст
| 1
Как удалить строки содержащие только одну вертикальную черту и три цифры?

2) Есть текст:
«текст текст.» - конец строки
текст текст" - новая строка
Как после точки вставить новую строку?
Заранее спасибо.

$ echo -ne 'текст | 123
> 123 | текст
> | 1' |sed -r '/[0-9]{3} \||\| [0-9]{3}/d'
| 1

$ echo -ne 'текст текст.
текст текст' |sed 's/\.$/.\n/'
текст текст.

текст текст

Например.

anonymous ()

Как удалить строки содержащие только одну вертикальную черту и три цифры?

вопрос конечно интересный. Ответ:

$ echo -e "||\n|123\n||123\n123" | sed '/^[^|]*|[^|]*$/!b;/[[:digit:]]\{3\}/d'
||
||123
123

PS: учитесь правильно формулировать вопросы.

emulek ()
Ответ на: комментарий от anonymous

sed -r '/[0-9]{3}/{/|/d}'

это удалит все строки, где есть хотя-бы одна |.

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