br sed: subsitute na linha que contém X mas não contém Y

3

Estou procurando uma solução elegante que combine esses dois comandos:

sed -i '/Y/! s/replace/with/' /path/to/file
sed -i '/X/ s/replace/with/' /path/to/file

Eu tentei

sed -i '/X/ /Y/! s/replace/with/' /path/to/file

que não funciona. Existe uma solução elegante para isso?

    
por GEO 16.11.2014 / 00:04

1 resposta

3

Algo como sed '/X/ {/Y/! s/replace/with/}' talvez?

$ sed '/X/ {/Y/! s/replace/with/}' << EOF
X replace X
X replace Y
Y replace X
Y replace Y
EOF
X with X
X replace Y
Y replace X
Y replace Y
    
por 16.11.2014 / 00:21

Tags