sed 分隔符(定界符)替换不适用于 p 命令

问题描述 投票:0回答:1

我尝试在 sed print 命令中将

/
替换为
#
分隔符,但没有成功。请看下面第三行:

u@debian:~$ echo A | sed -n '/A/p'
A
u@debian:~$ echo A | sed -n '#A#p'
u@debian:~$ echo A | sed -n s#A#B#p
B
u@debian:~$ 

如何更换?

bash sed delimiter
1个回答
0
投票

看看

info sed
,搜索
* sed addresses
,然后搜索
* Regexp Addresses

‘/REGEXP/’
     This will select any line which matches the regular expression
     REGEXP.  If REGEXP itself includes any ‘/’ characters, each must be
     escaped by a backslash (‘\’).

... ‘%REGEXP%’ (“%”可以替换为任何其他单个字符。)

     This also matches the regular expression REGEXP, but allows one to

所以你必须转义你的第一个分隔符

$ echo A | sed -ne '\#A#p'
A
© www.soinside.com 2019 - 2024. All rights reserved.