如果我有一个包含一些文本数据的文件,例如

PATTERN1
TEXT1
PATTERN1
TEXT2
PATTERN2

如何从我知道的PATTERN1和PATTERN2文件中选择TEXT2数据?
我曾尝试使用awtk作为here,但它同时打印TEXT1和TEXT2。

最佳答案

如果TEXT2始终被PATTERN1和PATTERN2包围,则可以使用grep:

grep -B2 "PATTERN2" file | grep -A1 "PATTERN1" | grep -v "PATTERN1"
  • grep -B2 "PATTERN2"->抓取PATTERN2和前两行
  • grep -A1 "PATTERN1"->从这三行中,抓取PATTERN1和
  • 之后的行
  • grep -v "PATTERN1"->删除包含PATTERN1的行,然后剩下TEXT2
  • 10-08 08:10