【发布时间】:2021-05-14 03:05:00
【问题描述】:
假设我有以下数据流:
BODY1
attrib1: someval11
attrib2: someval12
attrib3: someval13
BODY2
attrib1: someval21
attrib2: someval22
attrib3: someval23
BODY3
attrib1: someval31
attrib2: someval32
attrib3: someval33
我想为每个 BODY 提取 attrib1 和 attrib3,即
attrib1: someval11
attrib3: someval13
attrib1: someval21
attrib3: someval23
attrib1: someval31
attrib3: someval33
我试过了
grep 'attrib1\|attrib3',根据this site,但没有返回任何内容。 grep attrib1 和 grep attrib2 确实返回数据,但仅针对指定的单个模式。
【问题讨论】:
-
并不是说它解决了你的问题,但是如果你的正则表达式是
attrib[13],grep 可能更容易理解和更快地找到。使公共部分更长通常更好。 -
如果属性 1 和 3 之间没有 commong 模式怎么办?如果他们被命名为完全不同的东西?
-
在实际例子中,我的attrib1叫foo,attrib3叫bar...
-
那么
attrib[13]技巧就行不通了。 -
我不明白——它必须是 grep 吗? axiom 展示了如何做到这一点,但为什么不直接使用 awk 呢?我是唯一一个觉得这类任务更简单的人吗?