如何删除文件中两个标记之间的所有内容?

l7ll7

我在一个文本文件中有一个文本,我想要删除\{{[}{]}\}删除字符串之间的所有内容,包括这些字符串本身。这两个字符串可以位于不同的行,也可以位于同一行。无论哪种情况,在开始的那一行上\{{[},我都不想删除它之前的文本,即左边的文本,而after之后的文本也是如此{]}\}

这是一个示例:给定一个带有内容的文本文件

Bla Bla bla bla \{{[} more bla bla
even more bla bla bla bla. 

A lot of stuff might be here.

Bla bla {]}\} finally done.

Nonetheless, the \{{[} show {]}\} goes on.

该脚本应返回另一个包含内容的文本文件

Bla Bla bla bla  finally done.

Nonetheless, the  goes on.

不幸的是,这个简单的任务对我来说太难了sed我对使用任何语言的任何解决方案都感到满意,只要我不必在标准linux机器上安装任何东西(已经安装了C和一些Java)即可。

斯蒂芬·查泽拉斯(Stephane Chazelas)

perl

perl -0777 -pe 's/\Q\{{[}\E.*?\Q{]}\}\E//gs'

请注意,在处理之前,整个输入都已加载到内存中。

\Qsomething\E是用于something将被视为一个文字串,而不是正则表达式。

要就地修改常规文件,请添加以下-i选项:

perl -0777 -i -pe 's/\Q\{{[}\E.*?\Q{]}\}\E//gs' file.txt

使用GNUawkmawk

awk -v 'RS=\\\\\\{\\{\\[}|\\{\\]}\\\\}' -v ORS= NR%2

在那里,我们定义的记录分隔为那些要么开始或结束标记(仅gawkmawk支持RS是一个正则表达式在这里)。但是,我们需要逃避是正则表达式运算符(反斜杠,人物{[),并反斜杠一次,因为它在参数专用-v(用于诸如\n\b......),因此许多反斜杠。

然后,我们需要做的就是打印每隔一条记录。对于每个奇数记录NR%2都是1(true)。

对于这两种解决方案,我们都假定标记是匹配的,并且那些部分没有嵌套。

要使用GNU的最新版本就地修改文件awk,请添加-i inplace选项。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用 C# 删除两个括号标记之间的所有内容

来自分类Dev

如何在Python中的两个html标记之间获取所有内容?

来自分类Dev

如何通过删除两个条件之间的所有内容来压缩Pandas中的行

来自分类Dev

删除img src url中两个单词之间的所有内容,并使用htaccess从新的src提供文件

来自分类Dev

删除所有内容,两个文件除外

来自分类Dev

删除所有内容,两个文件除外

来自分类Dev

如何找到位于两个标记之间的字符串中的所有单词?

来自分类Dev

删除目录中除两个特定文件夹外的所有内容

来自分类Dev

删除/复制在Batch / Powershell中的两个特定时间之间获取的所有文件

来自分类常见问题

选择两个标题锚标记之间的所有内容

来自分类Dev

查找两个标记之间的所有出现内容(Ruby)

来自分类Dev

选择两个标题锚标记之间的所有内容

来自分类Dev

查找两个标记之间的所有出现内容(Ruby)

来自分类Dev

'#if DEBUG'和'#endif'如何删除两个标记之间的内容

来自分类Dev

Ruby替换两个标记之间的文件内容

来自分类Dev

如何合并记录匹配1列的两个csv文件中的所有内容

来自分类Dev

如何在GitPython中的两个标签之间列出所有更改的文件

来自分类Dev

如果两个逗号之间有匹配项,如何匹配两个逗号之间的所有内容?

来自分类Dev

使用sed删除两个单词之间的所有内容?

来自分类Dev

用文件内容替换两个模式(包括两个模式)之间的所有行

来自分类Dev

如何使用sed删除两个字符之间的所有内容?

来自分类Dev

如何使用SED删除两个字符之间的所有内容?

来自分类Dev

删除两个字符之间的字符串中的所有内容

来自分类Dev

删除类中的所有元素,除了两个锚标记

来自分类Dev

MS Access:如何删除两个特定字符后的字符串中的所有内容

来自分类Dev

MS Access:如何删除两个特定字符后的字符串中的所有内容

来自分类Dev

删除文本文件中两个特定字符之间的内容

来自分类Dev

删除文本文件中两个特定字符之间的内容

来自分类Dev

删除文本文件中两个特定字符之间的内容

Related 相关文章

  1. 1

    如何使用 C# 删除两个括号标记之间的所有内容

  2. 2

    如何在Python中的两个html标记之间获取所有内容?

  3. 3

    如何通过删除两个条件之间的所有内容来压缩Pandas中的行

  4. 4

    删除img src url中两个单词之间的所有内容,并使用htaccess从新的src提供文件

  5. 5

    删除所有内容,两个文件除外

  6. 6

    删除所有内容,两个文件除外

  7. 7

    如何找到位于两个标记之间的字符串中的所有单词?

  8. 8

    删除目录中除两个特定文件夹外的所有内容

  9. 9

    删除/复制在Batch / Powershell中的两个特定时间之间获取的所有文件

  10. 10

    选择两个标题锚标记之间的所有内容

  11. 11

    查找两个标记之间的所有出现内容(Ruby)

  12. 12

    选择两个标题锚标记之间的所有内容

  13. 13

    查找两个标记之间的所有出现内容(Ruby)

  14. 14

    '#if DEBUG'和'#endif'如何删除两个标记之间的内容

  15. 15

    Ruby替换两个标记之间的文件内容

  16. 16

    如何合并记录匹配1列的两个csv文件中的所有内容

  17. 17

    如何在GitPython中的两个标签之间列出所有更改的文件

  18. 18

    如果两个逗号之间有匹配项,如何匹配两个逗号之间的所有内容?

  19. 19

    使用sed删除两个单词之间的所有内容?

  20. 20

    用文件内容替换两个模式(包括两个模式)之间的所有行

  21. 21

    如何使用sed删除两个字符之间的所有内容?

  22. 22

    如何使用SED删除两个字符之间的所有内容?

  23. 23

    删除两个字符之间的字符串中的所有内容

  24. 24

    删除类中的所有元素,除了两个锚标记

  25. 25

    MS Access:如何删除两个特定字符后的字符串中的所有内容

  26. 26

    MS Access:如何删除两个特定字符后的字符串中的所有内容

  27. 27

    删除文本文件中两个特定字符之间的内容

  28. 28

    删除文本文件中两个特定字符之间的内容

  29. 29

    删除文本文件中两个特定字符之间的内容

热门标签

归档