【发布时间】:2018-04-29 00:31:06
【问题描述】:
在以下示例中,我希望在字符串替换中包含 * 元字符。如果我理解正确,我应该能够使用\ 转义字符,但这样做之后我看到的结果是:
❯ echo 'foo(*)' | sed s/foo\(\*/bar/g
bar*)
我期待看到以下内容:
❯ echo 'foo(*)' | sed s/foo\(\*/bar/g
bar)
【问题讨论】:
标签: sed metacharacters
在以下示例中,我希望在字符串替换中包含 * 元字符。如果我理解正确,我应该能够使用\ 转义字符,但这样做之后我看到的结果是:
❯ echo 'foo(*)' | sed s/foo\(\*/bar/g
bar*)
我期待看到以下内容:
❯ echo 'foo(*)' | sed s/foo\(\*/bar/g
bar)
【问题讨论】:
标签: sed metacharacters
你需要引用你的 sed 命令:
echo 'foo(*)' | sed 's/foo(\*/bar/g'
bar)
【讨论】:
(,除非你使用-E/-r。