sed linux 分隔符,你可以在sed中使用哪些分隔符?

我们通常会看到人们在想要使用包含sed分隔符的模式时抱怨sed中s’错误的未知选项.

例如,如果我们使用/:

$var="hel/lo"

$sed "s/a/$var/g" <<< "haha"

sed: -e expression #1,char 9: unknown option to `s'

所以我们建议使用另一个分隔符,例如|:

$sed "s|a|$var|g" <<< "haha"

hhel/lohhel/lo

但是,我想知道sed可以接受的分界符是什么…因为它似乎几乎是任何字符,包括正则表达式(*,?,.,…)!

在我的sed(GNU sed)4.2.2中:

$sed 's/a/b/g' <<< "haha"

hbhb

$sed 's_a_b_g' <<< "haha"

hbhb

$sed 's#a#b#g' <<< "haha"

hbhb

$sed 's$a$b$g' <<< "haha"

hbhb

$sed 's?a?b?g' <<< "haha"

hbhb

$sed 's*a*b*g' <<< "haha"

hbhb

$sed 's-a-b-g' <<< "haha"

hbhb

$sed 's.a.b.g' <<< "haha"

hbhb

$sed 'sXaXbXg' <<< "haha"

hbhb

$sed 'sxaxbxg' <<< "haha"

hbhb

$sed 's1a1b1g' <<< "haha"

hbhb

如果它被转义,即使是在这里工作:

$sed 'saaabag' <<< "haha"

sed: -e expression #1,char 5: unknown option to `s'

$sed 'sa\aabag' <<< "haha"

hbhb

这有什么规格吗?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值