sed 用于对含特殊字符处理时,需要用转义字符描述,使得字面含义非常难以理解。
sed 提供了一种分割符的转义用法,结合场景使用,使问题迎刃而解。
例如:
我们常用 sed 处理带路径的字符串,常要用转义符\ /来表述/,因为sed的习惯分割符是/。
这种情况为了简化表达,分隔符可以用#,这样/就可以直接当成字面含义使用,而免除转义的必要性了,从而提升了命令行代码可读性。
ex.
目标 替换 /a/b/c 为 b/c
传统:
-
echo /a/b/c | sed 's/\/a\///g'
优化后
-
echo /a/b/c | sed 's#/a/##g'
这样就容易理解多了。
另外,再其他指令处理的时候,需要增加特殊转义,才能让#生效, ex.
删除行 /a 开始的行
传统:
-
echo '/a/b/c
-
/a/c/d
-
/b/c/d' | sed '/\/a/d'
/b/c/d
优化后
-
echo '/a/b/c
-
/a/c/d
-
/b/c/d' | sed '\#/a#d'
/b/c/d
2019/10/12
阅读(10539) | 评论(0) | 转发(0) |