在sed命令和范围地址中使用不同的分隔符我正在使用shell脚本中的sed编辑文件系统路径名。假设我想替换:/foo/bar有:/baz/qux不过,是苏的s///命令使用正斜杠。/作为限制器。如果这样做,就会看到发出错误消息,例如:▶ sed 's//foo/bar//baz/qux//' FILE
sed: 1: "s//foo/bar//baz/qux//": bad flag in substitute command: 'b'类似地,有时我希望选择行范围,例如模式之间的行。foo/bar和baz/qux..再说一次,我不能这么做:▶ sed '/foo/bar/,/baz/qux/d' FILE
sed: 1: "/foo/bar/,/baz/qux/d": undefined label 'ar/,/baz/qux/d'我能做什么?
1 回答
慕森王
TA贡献1777条经验 获得超3个赞
sed '\,some/path,d'
s
sed 's,some/path,other/path,'
quotemeta
man sed
:
/regexp/
匹配正则表达式的行 regexp
.
\cregexpc
匹配正则表达式的行 regexp
..这个 c
可以是除反斜杠或换行符以外的任何字符。
s/regular expression/replacement/flags
将替换字符串替换为模式空间中正则表达式的第一个实例。除了反斜杠或换行符以外的任何字符都可以使用斜杠代替斜杠来分隔RE和替换。在RE和替换中,如果RE分隔符前面有反斜杠,则可以将其本身用作文字字符。
- 1 回答
- 0 关注
- 625 浏览
添加回答
举报
0/150
提交
取消