我有一个看起来像这样的文件:
文件:
900 1 37
900 2 41
900 3 278
918 1 9999
918 2 9999
918 3 9999
我想获得一个看起来像这样的新文件:
918 1 37
918 2 41
918 3 278
我想从上一组数字(900)中取出最后一列,并将其用于下一组数字(918)的最后一列。
我要替换的值始终是 9999。基本上我想用最后一个“有效”值替换所有 9999 的值(例如,当我有不同于 9999 的值时)。
我有一个看起来像这样的文件:
文件:
900 1 37
900 2 41
900 3 278
918 1 9999
918 2 9999
918 3 9999
我想获得一个看起来像这样的新文件:
918 1 37
918 2 41
918 3 278
我想从上一组数字(900)中取出最后一列,并将其用于下一组数字(918)的最后一列。
我要替换的值始终是 9999。基本上我想用最后一个“有效”值替换所有 9999 的值(例如,当我有不同于 9999 的值时)。
Perl 来拯救。
-n
逐行读取输入,运行每一行的代码;-l
从输入中删除换行符并将它们添加到输出中;-a
将空格上的每一行拆分为 @F 数组;@buff
记住第 1 列中最后一个数字的第 3 列的 er,记住在 中$prev
。如果第 1 列中的数字与上一行相同,我们将最后一列添加到缓冲区中;稍微短一点的版本: