0

我有一个名为“washington”的文件,大写字母有 4 种不同的拼写方式:Capital, capital, Capitol, capitol. 使用“sed”命令一次替换所有这些,并使用正确的拼写:capital.

我试过cat /washington | s '/[Cc]apit[ao]l/capital'了,但它不会工作。

我该怎么办?

4

2 回答 2

1

这将起作用:

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

请注意,您需要在引号中使用正确的命令。以 's' 开头代表 'substitute',以 'g' 结尾代表 'global'。全局意味着替换字符串中的所有匹配项。

于 2013-05-17T05:43:23.273 回答
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在任何地方使用)

于 2013-05-17T05:46:57.823 回答