如何比较一列中的值并在此之后执行某些操作?我想比较第一列的值和更改的时间插入一个零值的新行。为简单起见,我需要编写类似于我在MATLAB中编写的代码,在AWK中:
for i=1:size(picks,1)-1
if picks(i,1)~=picks(i+1,1)
i
end
end
输入:
631 4892 1.640 0.0090 6796
631 4941 1.646 0.0090 6796
636 2121 0.860 0.0950 7013
636 2162 0.872 0.0890 7013
输出:
631 4892 1.640 0.0090 6796
631 4941 1.646 0.0090 6796
631 9999 7013 0 0
636 2121 0.860 0.0950 7013
636 2162 0.872 0.0890 7013
感谢您的帮助。
答案 0 :(得分:2)
这是将当前第一列与前一列进行比较的问题。如果它们不同,我们会使用前一个col1和0
打印一个新行:
$ awk 'NR>1 && $1!=prev {print prev, 0} {prev=$1}1' file
631 4892 1.640 0.0090 6796
631 4941 1.646 0.0090 6796
631 0
636 2121 0.860 0.0950 7013
636 2162 0.872 0.0890 7013