如果我有一个包含一些文本数据的文件,例如
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