gpt4 book ai didi

linux - sed 没有按预期替换

转载 作者:太空宇宙 更新时间:2023-11-04 06:02:37 26 4
gpt4 key购买 nike

为什么我得到与输入相同的输出,而我期待“搜索替换主题”作为输出:

x="search='some thing' replace='something' subject=/path"

echo $x
echo "$x" | sed 's/\(\w+\)=/\1\n/g'

最佳答案

默认情况下,sed 使用旧式正则表达式。如果您想要新样式(又名“扩展”)正则表达式,您应该使用 sed -r 。无论如何,您使用的是旧式和新式正则表达式的混合,这永远不会起作用(您不能同时使用 \(...\)+);所以要么

sed -e 's/\(\w\+\)=/\1\n/g'

sed -re 's/(\w+)=/\1\n/g'

以上任何一个都会产生

search
'some thing' replace
'something' subject
/path

如果您实际上希望输出为搜索替换主题,则

sed -re "s/=('[^']*'|[^']\\S*)//g"

也就是说,删除等号后跟的所有匹配项

  • ' 任意数量的非 ' 和最后一个 '
  • 由 1 个或多个非空格组成的序列,以除 ' 以外的任何内容开头。

(但这与原始问题中的正则表达式无关。我无法将所需的输出与问题中的正则表达式联系起来。)

关于linux - sed 没有按预期替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47643370/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com