我正在寻找一个结合这两个命令的优雅解决方案:
sed -i '/Y/! s/replace/with/' /path/to/file
sed -i '/X/ s/replace/with/' /path/to/file
我试过
sed -i '/X/ /Y/! s/replace/with/' /path/to/file
这是行不通的。有一个优雅的解决方案吗?
答案1
也许是这样sed '/X/ {/Y/! s/replace/with/}'
?
$ 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