2

我有一个文本文件,并使用sed带有正则表达式的编辑器来查找和替换其中的字符。比如说,a->b、g->h、r->d 和 e->q。

像这样:

sed -i "s/a/b/g" file.html >NUL
sed -i "s/g/h/g" file.html >NUL
sed -i "s/r/d/g" file.html >NUL
sed -i "s/e/q/g" file.html >NUL

一切正常。但我想将它组合成一条正则表达式行。我可以吗?在谷歌搜索并阅读了很多关于 refex 之后,我现在看不到任何办法。谢谢!

4

3 回答 3

5

tr is the command to do this: tr < file.html 'agre' 'bhdq'

But if you're asking how to make commands run together go:

sed -e "s/a/b/g" -e "s/g/h/g" -e "s/r/d/g" -e "s/e/q/g" file.html

Or more generally if the commands are different:

sed -e "s/a/b/g" file.html | sed -e "s/g/h/g" |
    sed -e "s/r/d/g" | sed -e "s/e/q/g"
于 2013-08-26T15:10:43.787 回答
1

这可能对您有用(GNU sed):

sed -i 'y/agre/bhdq' file
于 2013-08-26T18:46:34.160 回答
1

sed命令也可以从文件中读取:sed -f commands.sed file.html

commands.sed
---- 
s/a/b/g
s/g/h/g
s/r/d/g
s/e/q/g
于 2013-11-20T13:10:04.170 回答