当文本块中必须存在特定字符串时,如何使用sed / awk在两个模式之间提取文本

福蒂斯

我已经找到了关于如何在两种模式之间进行sed / awk的几个答案,但我还需要仅查找其中包含字符串的特定文本块!

文字范例:

<requirement        id = "blabla.1"
                slogan = "Handling of blabla"
          work-package = "bla444.2"
          logical-node = "BLA-C"
                 level = "System"
>
Bla bla.
</requirement>
<requirement        id = "bla.2"
                slogan = "Reporting of blabla"
          work-package = "bla444.1"
          logical-node = "BLA-C"
                 level = "System"
>
Bla bla bla.
</requirement>

因此,目标是仅获取&之间的文本块,该文本块在工作包中应具有bla444.1!在示例中,这应该只给我最后一个文本块。当然,我想要sed的文件有更多的要求,还有一些需要的工作包,因此不仅会找到sed的最后一个文本块。

sed -e 's/<requirement\(.*\)<\/requirement/\1/' file

上面的sed行将给出所有文本块(要求)。

一件事是该文本块没有固定的行数,但是全部都有工作包!

感谢在广告中。

RavinderSingh13

您可以尝试以下吗?

awk '
/^<requirement/{
  if(found && value){
    print value
  }
  found=value=""
}
{
  value=(value?value ORS:"")$0
}
/work-package.*bla444.1\"$/{
  found=1
}
END{
  if(found && value){
    print value
  }
}
'  Input_file

说明:添加以上代码的详细说明。

awk '                           ##Starting awk program from here.
/^<requirement/{                ##Checking condition if line starts from string <requirement then do following.
  if(found && value){           ##Checking condition if found and value is NOT NULL then do following.
    print value                 ##Printing value(which contains all blocks value, explained further code) here.
  }
  found=value=""                ##Nullifying variables found and value variables here.
}
{
  value=(value?value ORS:"")$0  ##Creating variable value whose value is keep concatenating its own value each time cursor comes here.
}
/work-package.*bla444.1\"$/{    ##Checking condition if a line has string work-package till bla444.1 then do following.
  found=1                       ##Making variable found and setting value to 1, kind of FLAG enabling stuff.
}
END{                            ##Starting END block of this awk code here.
  if(found && value){           ##Checking condition if found and value is NOT NULL then do following.
    print value                 ##Printing value variable here.
  }
}
'  Input_file                   ##Mentioning Input_file name here.

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用awk脚本在两个模式之间拉文本

来自分类Dev

使用sed,grep或awk在两个锚点标签之间提取文本

来自分类Dev

提取两个P之间的文本

来自分类Dev

从两个词之间提取文本

来自分类Dev

提取两个行号之间的文本

来自分类Dev

使用awk和可变正则表达式提取两个模式之间的行

来自分类Dev

使用awk和可变正则表达式提取两个模式之间的行

来自分类Dev

Bash提取两个模式之间的字符串

来自分类Dev

使用VBA从两个相同字符之间的字符串中提取文本

来自分类Dev

两个模式之间的awk / sed插入线

来自分类Dev

如何使用awk,sed在两个特定单词之间打印文本?

来自分类Dev

如何从bash中的两个模式之间提取字符串

来自分类Dev

如何从bash中的两个模式之间提取字符串

来自分类Dev

如何提取位于两个指标之间的文本?

来自分类Dev

提取熊猫列中两个标记之间的文本

来自分类Dev

使用.bat提取两个单词之间的文本

来自分类Dev

使用.bat提取两个单词之间的文本

来自分类Dev

提取两个单词之间的文本,多行验证

来自分类Dev

SimpleXML提取两个标签之间的文本

来自分类Dev

在awk中的两个模式之间进行文本处理,以提供选择性的唯一输出

来自分类Dev

在保留格式的同时提取两个模式(包括两个模式)之间的字符串

来自分类Dev

在保留格式的同时提取两个模式(包括两个模式)之间的字符串

来自分类Dev

如何提取以一个模式开头的行和两个模式之间的块?

来自分类Dev

使用 awk 在两个实践之间提取字符串

来自分类Dev

提取与模式匹配且位于两个定义的字符串之间的字符串

来自分类Dev

如何使用sed提取两个条形符号(即“ |”)之间的文本?

来自分类Dev

使用awk提取文本文件中一列中两个字符串之间的第一个和最后一个数字,并区别那些数字?

来自分类Dev

Python-如何在大文本中的两个变量之间提取文本

来自分类Dev

如何提取日志文件中两个字符串之间的文本?

Related 相关文章

  1. 1

    使用awk脚本在两个模式之间拉文本

  2. 2

    使用sed,grep或awk在两个锚点标签之间提取文本

  3. 3

    提取两个P之间的文本

  4. 4

    从两个词之间提取文本

  5. 5

    提取两个行号之间的文本

  6. 6

    使用awk和可变正则表达式提取两个模式之间的行

  7. 7

    使用awk和可变正则表达式提取两个模式之间的行

  8. 8

    Bash提取两个模式之间的字符串

  9. 9

    使用VBA从两个相同字符之间的字符串中提取文本

  10. 10

    两个模式之间的awk / sed插入线

  11. 11

    如何使用awk,sed在两个特定单词之间打印文本?

  12. 12

    如何从bash中的两个模式之间提取字符串

  13. 13

    如何从bash中的两个模式之间提取字符串

  14. 14

    如何提取位于两个指标之间的文本?

  15. 15

    提取熊猫列中两个标记之间的文本

  16. 16

    使用.bat提取两个单词之间的文本

  17. 17

    使用.bat提取两个单词之间的文本

  18. 18

    提取两个单词之间的文本,多行验证

  19. 19

    SimpleXML提取两个标签之间的文本

  20. 20

    在awk中的两个模式之间进行文本处理,以提供选择性的唯一输出

  21. 21

    在保留格式的同时提取两个模式(包括两个模式)之间的字符串

  22. 22

    在保留格式的同时提取两个模式(包括两个模式)之间的字符串

  23. 23

    如何提取以一个模式开头的行和两个模式之间的块?

  24. 24

    使用 awk 在两个实践之间提取字符串

  25. 25

    提取与模式匹配且位于两个定义的字符串之间的字符串

  26. 26

    如何使用sed提取两个条形符号(即“ |”)之间的文本?

  27. 27

    使用awk提取文本文件中一列中两个字符串之间的第一个和最后一个数字,并区别那些数字?

  28. 28

    Python-如何在大文本中的两个变量之间提取文本

  29. 29

    如何提取日志文件中两个字符串之间的文本?

热门标签

归档