shell sed替换文本文件中的特殊字符但无法替换它

时间:2015-05-13 19:31:53

标签: regex shell sed

我正在尝试用文本文件中的sam替换sam_18,但它不会产生正确的结果。

sed -i -e 's/sam_18/sam/g'

它不会产生任何输出。如果它将'_'视为特殊字符,我有点困惑。 有什么帮助吗?谢谢

1 个答案:

答案 0 :(得分:1)

选项-i需要一个文件(至少)来执行就地替换:

sed -i -e 's/sam_18/sam/g' myfile

如果没有提供文件,sed将从标准输入(或输入管道)读取。在这种情况下,您无法使用-i。然后你会做类似的事情:

cat myfile | sed -e 's/sam_18/sam/g' > newfile