GNU sed 中的前瞻正则表达式有什么问题?
- 2024-10-24 08:50:00
- admin 原创
- 62
问题描述:
这就是我正在做的事情(简化示例):
gsed -i -E 's/^(?!foo)(.*)$/bar/' file.txt
我试图将 放在bar
不以 开头的每一行前面foo
。这是错误:
gsed: -e expression #1, char 22: Invalid preceding regular expression
怎么了?
解决方案 1:
sed -i '/^foo/! s/^/bar/' file.txt
-i
就地修改文件/^foo/!
`!仅对不以*foo*开头的行执行下一步操作
^foo`s/^/bar/
将行首改为 bar
解决方案 2:
据我所知,sed
既没有前瞻也没有后瞻。切换到具有类似语法的更强大的语言,例如perl
。
解决方案 3:
您使用了 GNU sed 不支持的 perl 兼容正则表达式 (PCRE) 语法。您应该根据 SED正则表达式重写正则表达式或改用perl
其他语法。
请注意,SED 没有前瞻功能,因此不支持您尝试使用的正则表达式功能。正如其他人提到的,可以使用 SED 中的其他功能来实现。
相关推荐
热门文章
项目管理软件有哪些?
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件
热门标签
云禅道AD