sed中使用#作为分隔符的p命令无法生效,如何解决?
sed匹配打印命令替换分隔符的正确方法
sed的地址匹配(用于指定要处理的行,比如/A/)和替换命令(s///)的分隔符规则不同:
- 替换命令可以直接在
s后更换分隔符,比如s#A#B#p能正常工作; - 但地址匹配的分隔符,必须先用反斜杠
\转义第一个自定义分隔符,才能替代默认的/。
你之前的#A#p命令无效,是因为sed会把开头的#识别为注释符号,后续内容被忽略,所以没有输出。
正确的命令写法如下:
u@debian:~$ echo A | sed -n '\#A#p' A
内容的提问来源于stack exchange,提问作者trzczy
相关产品推荐
相关产品推荐

