擅长:python、mysql、java
<p>将GNU awk用于ENDFILE,并假设您有要打印的属性标记的特定子集,而不是所有属性标记都出现在每个文件中(您发布的示例对此不清楚,或者属性是否都以属性开头,等等):</p>
<pre><code>$ cat tst.awk
BEGIN {
numTags = split("PROPERTY 1,PROPERTY 2,PROPERTY 3,PROPERTY 4",tags,/,/)
}
{
tag = $0
sub(/:.*/,"",tag)
f[tag] = $NF
}
ENDFILE {
for (tagNr=1; tagNr<=numTags; tagNr++) {
tag = tags[tagNr]
val = f[tag]
printf "%s%s", val, (tagNr<numTags ? OFS : ORS)
}
delete f
}
</code></pre>
<p>
</p><pre><code>$ awk -f tst.awk first second
1234 9800 328497 823586
1 2 3 4
</code></pre>