如何用sed表达此正则表达式?

用户12547645

我有这个正则表达式,我想与sed一起使用。我想使用sed,因为我想批量处理几千个文件,而我的编辑器不喜欢那样

找: "some_string":"ab[\s\S\n]+"other_string_

代替: "some_string":"removed text"other_string_

查找基本上匹配some_string和other_string之间的所有内容,包括特殊字符,如; ;;-或_并用警告已删除文本的方式替换它。

我当时正在考虑将字符类[[:space:]]组合在一起[[:alnum:]],但没有用。

威克多·斯特里比尤(WiktorStribiżew)

在MacOS FreeBSD中sed,您可以使用

sed -i '' -e '1h;2,$H;$!d;g' -e 's/"some_string":"ab.*"other_string_/"some_string":"removed text"other_string_/g' file

1h;2,$H;$!d;g部分将整个文件读入内存,以便所有换行符都暴露于正则表达式,然后"some_string":"ab.*"other_string_匹配"some_string":"ab直到最后一次出现的"other_string_文本并用RHS文本替换。

您需要-i ''与FreeBSD一起使用sed以强制执行内联文件修改。

顺便说一句,如果您决定使用perl,则可以真正使用该-0777选项来启用带有s修饰符的文件细化(使.匹配所有字符,包括换行符),并使用类似

perl -i -0777 's/"some_string":"\Kab.*(?="other_string_)/removed text/gs' file

这里,

  • "some_string":" -匹配文字
  • \K -省略了与当前匹配存储缓冲区相距甚远的文本
  • ab - 火柴 ab
  • .* -尽可能多的零个或多个字符
  • OR .*? -任何零个或多个字符的
  • (?="other_string_)-正向前瞻(与文本匹配,但不附加到匹配值),确保"other_string_立即在右边。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何用sed表达此正则表达式?

来自分类Dev

我如何用正则表达式拆分此表达式?

来自分类Dev

如何用ruby编写此正则表达式?(解析Gmail API字段)

来自分类Dev

如何用命名组在Python中编写正则表达式以匹配此规则?

来自分类Dev

unix sed-如何用正则表达式替换多行

来自分类Dev

如何用正则表达式替换文本?

来自分类Dev

如何用正则表达式选择任意位数?

来自分类Dev

正则表达式:如何用“ =”而不是“!=”分隔

来自分类Dev

如何用正则表达式替换字符序列?

来自分类Dev

如何用正则表达式替换WebStorm / PhpStorm

来自分类Dev

如何用正则表达式匹配以$开头的变量?

来自分类Dev

如何用if语句匹配正则表达式

来自分类Dev

如何用正则表达式表示文本块?

来自分类Dev

如何用|进行正则表达式?

来自分类Dev

如何用正则表达式匹配数据

来自分类Dev

如何用正则表达式进行模式替换?

来自分类Dev

如何用方括号构建正则表达式

来自分类Dev

如何用正则表达式计算0.05的倍数

来自分类Dev

正则表达式:如何用“ =”而不是“!=”分隔

来自分类Dev

如何用变量替换vim正则表达式

来自分类Dev

如何用正则表达式替换字符序列?

来自分类Dev

如何用正则表达式忽略空格?

来自分类Dev

如何用if语句匹配正则表达式

来自分类Dev

如何用mawk指定正则表达式量词?

来自分类Dev

如何用分组解释正则表达式减法

来自分类Dev

此正则表达式的说明

来自分类Dev

如何使用此正则表达式更具体?

来自分类Dev

如何匹配此网址的正则表达式?

来自分类Dev

此正则表达式如何匹配成组