【发布时间】:2017-03-15 09:13:52
【问题描述】:
我在一个文件中捕获了类似这样的数据输出。
- 列表项1
attrib1: someval11
attrib2: someval12
attrib3: someval13
attrib4: someval14
- 列表项2
attrib1: someval21
attrib2: someval12
attrib4: someval24
attrib3: someval23
- 列表项3
attrib1: someval31
attrib2: someval32
attrib3: someval33
attrib4: someval34
仅当“attrib2 is someval12”时,我想从数据列表中提取attrib1、attrib3、attrib4。
请注意,attrib3 和 attrib4 可以在 attrib2 之后以任意顺序排列。
到目前为止,我尝试将 grep 与 -A 和 -B 选项一起使用,但我需要指定行号,这是一种我不想这样做的硬编码。
grep -B 1 -A 1 -A 2 "attrib2: someval12" | egrep -w "attrib1|attrib3|attrib4"
我可以使用 grep 的任何其他选项,它不涉及指定此示例的前后出现吗?
【问题讨论】: