我想用awk解析多行表达式。它们中的一种,是这样的:awk和多行匹配(sub-regex)
_begin hello world !
_attrib0 123
_attrib1 super duper
_attrib1 yet another value
_attrib2 foo
_end
我需要提取关联_begin和_attrib1值。因此,在该示例中,awk脚本应返回(每行一个):
hello world ! super duper yet another value
使用的隔板是一标签(\ t)的字符。空格仅在字符串中使用。
_attrib11正在此脚本失败(_attrib1匹配) – malat
有您所提供的样本数据中没有'_attrib11'。如果你喜欢,你可以像'$ 1 ==“_ attrib1”'而不是'/^_ attrib1 /'来处理它,或者你可以把它作为一个正则表达式来终止它,就像'$ 1〜/^_ attrib1 $ /'。我建议第一个备用解决方案;总是先选择字符串匹配,正则表达式(至少)秒。 – ghoti
根据您的新要求更新我的答案。还增加了一个'sed'替代方案,为您的阅读乐趣。 – ghoti