【发布时间】:2014-03-21 04:18:06
【问题描述】:
我有一个管道分隔文件(file.001),如下所示:
00|FIELD10|FIELD02
01|FIELD01|FIELD02|FIELD03
01|FIELD01|FIELD02|FIELD03
01|FIELD01|FIELD02|FIELD03
01|FIELD01|FIELD02|FIELD03
99|4
以“01”开头的行是记录(00 = 标题,99 = 尾)。预告片中的最后一个字段(当前填充“4”)是记录数,但该记录数并不总是准确的。
我想要做的是计算记录数并更新记录计数字段,同时保持其余数据不变(打印到新文件会很好,理想情况下它会在同一个文件中)。我对此的解释是将计数值打印到最后一个字段值中,但我不知道该怎么做。
我一直在尝试使用 awk 进行此操作,目前有以下用于打印计数和最后一个字段:
打印记录数:
awk '/^01/ {count++} END {print count }' file.001
打印最后一个字段:
awk 'BEGIN {RS="|"}; END {print ($(NF))}' file.001
有人可以就如何做到这一点提出建议吗? 如果到目前为止我上面的内容不是很好,我是 awk 的新手,所以很抱歉。我也愿意使用 awk 以外的东西来实现这一点。
【问题讨论】:
-
嗯,你能指出你想要的输出是什么吗?
-
输出将是文件现在的样子。我遇到的问题是我可能在文件中有 1000 条“01”记录,但底部的文件数可能是“4”。我想计算这 1000 条记录并将“4”更新为“1000”。 Obvioulsy 这可以通过计数来完成,然后手动更新文件,但我一次可以有 100 个文件
标签: awk