关于用sed替换字符串

时间:2011-11-02 07:26:36

标签: sed

我想用\ lt;替换所有\ r \ n br />在一个文档中,我正在尝试这个看下面的脚本

# sed -i 's/\r\n/<br/>' ~/xxd/*

然而我收到了这个错误

  

sed:-e expression#1,char 12:`s'

的未知选项

我如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:3)

您的问题是您的替换字符串中有/分隔符,因此sed假设您的替换字符已结束,并且>后面的sed是一个标记。< / p>

如果您的pax$ echo hello | sed -e 's/e/<br />/' sed: -e expression #1, char 9: unknown option to `s' pax$ echo hello | sed -e 's?e?<br />?' h<br />llo 足够现代,只需在替换字符串中使用不同的分隔符,即

sed

或者,你可以逃避犯罪角色,但我尽量避免这种情况,因为它往往会导致像/\/\/\/\/\/\这样过于锯齿的\n命令。

您可能需要注意的另一件事是尝试在正则表达式中使用sed,因为sed无论如何都会在行上运行。如果您的目的是仅删除回车并插入HTML换行符,则以下s?\r$?<br />? 命令可能更好:

{{1}}