替换sed不会工作

时间:2013-05-17 05:39:39

标签: bash shell unix sed substitution

我有一个名为“华盛顿”的文件,资本拼写为4种不同 方式:Capital, capital, Capitol, capitol。使用“sed”命令 使用正确的拼写:capital一次替换所有这些拼写。

我试过了cat /washington | s '/[Cc]apit[ao]l/capital'但它无法正常工作。

我该怎么办?

2 个答案:

答案 0 :(得分:1)

这将有效:

$ cat /washington | sed 's/[Cc]apit[ao]l/capital/g'

请注意,您需要在引号中使用适当的命令。以'替换'开头's',以'全局'开头'g'。全局意味着替换字符串中的所有匹配项。

答案 1 :(得分:1)

sed 's/[Cc]apit[ao]l/capital/g' <filename>

如果要更改文件本身,即写回文件

sed -i 's/[Cc]apit[ao]l/capital/g' <filename>

如果您想保留原始文件的备份(我的建议)

sed -i.bak 's/[Cc]apit[ao]l/capital/g' <filename>将保留名为.bak的备份

(请参阅,我没有在任何地方使用cat