如何使用sed替换字符串中的多个字符?

时间:2016-02-24 21:46:54

标签: linux sed

我想用sed替换字符串的一些字符。

我尝试了以下两种方法,但我需要知道是否有更优雅的表单来获得相同的结果,而不使用管道或IschkExportToExcelChecked选项:

RevalSurfaceChecked = RevalSurfaceChecked && (_isChkExportToCSVChecked || _ischkExportToExcelChecked);

3 个答案:

答案 0 :(得分:4)

您可以在一个参数中将命令与-e分开,而不是多个;选项。

sed 's/a/A/g; s/1/23/g' test.txt > test2.txt

如果你正在寻找一种方法在一个命令中进行多次替换,我认为没有办法。如果它们都是单字符替换,您可以使用y/abc/123之类的命令,将a替换为1b替换为2c 1}}与3。但是没有多角色版本。

答案 1 :(得分:0)

除了Barmar的答案之外,您可能还想使用正则表达式字符类来对一个特定字符替换执行多个字符。

这是一个澄清事物的例子,尝试使用和不使用sed来运行它来感受效果

echo -e 'abc\ndef\nghi\nklm' | sed 's/[adgk]/1/g; s/[behl]/2/g; s/[cfim]/3/g'

P.S。永远不会从安全沙箱之外的陌生人那里运行示例代码

答案 2 :(得分:0)

当你有更多的替换字符串时,你可以在变量中收集它们。

seds="s/a/A/;"
seds+="s/1/23/;"
echo "That was 1 big party" |
   sed ${seds}