URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 41289
[ Назад ]

Исходное сообщение
"sed"

Отправлено Greenwood , 04-Мрт-04 19:59 
Как совместить несколько условий в одном действии редактора sed?
А то некрасиво получается:
sed '/[!+-]drw[e-z]/d' /var/drweb/updates.win/drweb32.lst >
/var/drweb/updates.win/drweb32.lst.1
sed '/[+-]!/d' /var/drweb/updates.win/drweb32.lst.1 >
/var/drweb/updates.win/drweb32.lst.2
sed '/[=]/d' /var/drweb/updates.win/drweb32.lst.2 >
/var/drweb/updates.win/drweb32.lst
rm /var/drweb/updates.win/drweb32.lst.2
rm /var/drweb/updates.win/drweb32.lst.1

Или sed так и работает?


Содержание

Сообщения в этом обсуждении
"А чего надо-то"
Отправлено Дмитрий Ю. Карпов , 04-Мрт-04 20:09 
1) Можно заменить несколько слов на одно:
sed 's/\(первое_слово\|второе_слово\|третье_слово\)/замена/' ...

2) Можно в одной операции провести ряд замен:
sed -e 'одна_замена' -e 'вторая замена' ...

3) Можно повязать несколько sed через пайп:
sed 'одна_замена' ... | sed 'вторая замена' | ...

4) Можно скормить результаты работы программы в командную строкУ:
rm `grep -l 'шаблон' файлы`
(удаение всех файлов, содержащих "шаблон"). Хотя это, вроде, здесь и не к месту...


"А чего надо-то"
Отправлено Greenwood , 10-Мрт-04 05:48 
>1) Можно заменить несколько слов на одно:
>sed 's/\(первое_слово\|второе_слово\|третье_слово\)/замена/' ...
>
>2) Можно в одной операции провести ряд замен:
>sed -e 'одна_замена' -e 'вторая замена' ...
>
>3) Можно повязать несколько sed через пайп:
>sed 'одна_замена' ... | sed 'вторая замена' | ...
>
Первые три. Спасибо