Awk 比较两列并减去它们
我的问题 我有一个文件Awk 比较两列并减去它们,awk,Awk,我的问题 我有一个文件 344 0 465 1 729 2 777 3 676 4 862 5 766 0 937 1 980 2 837 3 936 5 我需要比较每两对(零对零,一对一等等)如果值存在(第二列的任何值都应该存在两次)减去766-344,937-465等等,如果不存在像第四个值什么都不做(4存在一次所以什么都不做)输出 422 472 251 060 074 我还需要添加索引 范例 最后,我需要将此代码作为tcl脚本的一部分或tcl程序的函数添加 我
344 0
465 1
729 2
777 3
676 4
862 5
766 0
937 1
980 2
837 3
936 5
我需要比较每两对(零对零,一对一等等)如果值存在(第二列的任何值都应该存在两次)减去766-344,937-465等等,如果不存在像第四个值什么都不做(4存在一次所以什么都不做)输出
422
472
251
060
074
我还需要添加索引
范例
最后,我需要将此代码作为tcl脚本的一部分或tcl程序的函数添加
我有一个tcl脚本,包含如下awk函数
set awkCBR0 {
{
if ($1 == "r" && $6 == 280) {
print $2, i >> "cbr0.q";
i +=1 ;
}
}
}
exec rm -f cbr0.q
exec touch cbr0.q
exec awk $awkCBR0 cbr.trq
谢谢试试这个:
awk 'a[$2]{printf "%d %03d\n",++x,$1-a[$2];next}{a[$2]=$1}' file
输出
我将留给您将其添加到tcl
函数中 试试这个:
awk 'a[$2]{printf "%d %03d\n",++x,$1-a[$2];next}{a[$2]=$1}' file
输出
我将留给您将其添加到
tcl
函数中 酷。。我不知道变量可以像这样用作模式(我一直在写像a[$2]!=”{body}
)酷。。我不知道变量可以像这样作为模式使用(我一直在写a[$2]!=“{body}
)
$ awk 'a[$2]{printf "%d %03d\n",++x,$1-a[$2];next}{a[$2]=$1}' file
1 422
2 472
3 251
4 060
5 074