![提取具有特定值的行后面的两行](https://linux22.com/image/87134/%E6%8F%90%E5%8F%96%E5%85%B7%E6%9C%89%E7%89%B9%E5%AE%9A%E5%80%BC%E7%9A%84%E8%A1%8C%E5%90%8E%E9%9D%A2%E7%9A%84%E4%B8%A4%E8%A1%8C.png)
我有一个文本文件,我想提取仅包含“名称”作为值的行后面的两行数据。
姓名
032
表达参与外交合作的意向(例如政策
支持)
描述
姓名
033
表达提供物质援助的意图,下文未具体说明
描述
因此,上面的输出将是一个包含以下内容的文件:
032 表达开展外交合作的意向(如政策支持)
033 表达提供物质援助的意图,下文未指定
答案1
awk '/Name/ { readline; num=$0; readline; print num, $0; }' < inputfile
readline
读取输入的下一行$0
。因此,当Name
匹配时,它会读取下一行,将其放入变量中num
,然后读取第二行,然后将num
和该行一起打印在一行上。