gpt4 book ai didi

regex - 尝试使用带正则表达式的 sed 替换字符串时出现未知选项

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

我正在尝试替换文件中具有以下形式的所有模式:

> hello, test< ><link>hello, test</link><

为此,我使用了以下命令:

sed -i 's/>[a-zA-Z0-9_ ]*</><link>\1<link></g' finename.txt
  • >[a-zA-Z0-9_ ]*< : 查找 >< 之间的所有字母数字模式
  • <link>\1<link> : 将它们替换为 ><link>pattern</link><

但是我看到了以下错误信息

character 37. Reference \ 1 invalid in the right side of the control

表达式有什么问题?

最佳答案

\1 引用第一个 capture group并且您没有设置任何捕获组,因此 \1 无效。你想要的是:

$ echo ">hello, test<" | sed -r 's/>([a-zA-Z0-9,_ ]*)</><link>\1<link></g'
><link>hello, test<link><

捕获组的使用是扩展正则表达式的一部分,因此您需要使用 -r 参数。另请注意,在您的示例输入中,您有一个 , 但您没有将该字符包含在您的字符类中。

关于regex - 尝试使用带正则表达式的 sed 替换字符串时出现未知选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32246724/

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