我想用\ lt;替换所有\ r \ n br />在一个文档中,我正在尝试这个看下面的脚本
# sed -i 's/\r\n/<br/>' ~/xxd/*
然而我收到了这个错误
sed:-e expression#1,char 12:`s'
的未知选项
我如何解决这个问题?
谢谢!
答案 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}}