在 awk 的每次迭代之间插入值
inserting values between each iteration of awk
我正在解析一个日志文件,其中加载了多种类型的 XML。我正在使用 awk 提取 XML 的特定部分。我正在使用以下内容:
awk '/<TAG>/,/<\/TAG>/' ${LOG} > OUTPUT.txt;
但是,因为这些是内部标签而不是整个XML的开始或结束(因为有多种类型的XML),所以我需要添加初始标签以及底部的结束标签(为了完成日志,因为顶部和底部标签对于所有类型的 XML 都是通用的,我想要一种特定的类型)。
问题是:
有没有办法在每次 awk 迭代前后添加文本?
示例:
输入:
<TAG>
<InnerTAG>
</InnerTAG>
</TAG>
<TAGTWO>
<InnerTAG>
</InnerTAG>
</TAGTWO>
<TAG>
<InnerTAG>
</InnerTAG>
</TAG>
输出:
TOP
<TAG>
<InnerTAG>
</InnerTAG>
</TAG>
BOTTOM
TOP
<TAG>
<InnerTAG>
</InnerTAG>
</TAG>
BOTTOM
TOP & BOTTOM 是两个不同的印刷品还是我添加的东西?
PS:我无法提前知道有多少次迭代...这也是每个文件动态的。
谢谢,
试试
awk '/<TAG>/ {print "Before"}
/<TAG>/,/<\/TAG>/ {print}
/<\/TAG>/ {print "After"}' ${LOG} > OUTPUT.txt;
您可以将 "Before" 和 "After" 替换为您想要的任何内容。
我正在解析一个日志文件,其中加载了多种类型的 XML。我正在使用 awk 提取 XML 的特定部分。我正在使用以下内容:
awk '/<TAG>/,/<\/TAG>/' ${LOG} > OUTPUT.txt;
但是,因为这些是内部标签而不是整个XML的开始或结束(因为有多种类型的XML),所以我需要添加初始标签以及底部的结束标签(为了完成日志,因为顶部和底部标签对于所有类型的 XML 都是通用的,我想要一种特定的类型)。
问题是:
有没有办法在每次 awk 迭代前后添加文本?
示例:
输入:
<TAG>
<InnerTAG>
</InnerTAG>
</TAG>
<TAGTWO>
<InnerTAG>
</InnerTAG>
</TAGTWO>
<TAG>
<InnerTAG>
</InnerTAG>
</TAG>
输出:
TOP
<TAG>
<InnerTAG>
</InnerTAG>
</TAG>
BOTTOM
TOP
<TAG>
<InnerTAG>
</InnerTAG>
</TAG>
BOTTOM
TOP & BOTTOM 是两个不同的印刷品还是我添加的东西?
PS:我无法提前知道有多少次迭代...这也是每个文件动态的。
谢谢,
试试
awk '/<TAG>/ {print "Before"}
/<TAG>/,/<\/TAG>/ {print}
/<\/TAG>/ {print "After"}' ${LOG} > OUTPUT.txt;
您可以将 "Before" 和 "After" 替换为您想要的任何内容。