1

我的问题

我有一个文件

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

我还需要添加索引示例

1 422
2 472
3 251
4 060
5 074

最后我需要将此代码添加为 tcl 脚本的一部分,或 tcl porgram 的功能

我有一个 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

谢谢

4

1 回答 1

1

尝试这个:

awk 'a[$2]{printf "%d %03d\n",++x,$1-a[$2];next}{a[$2]=$1}' file

输出

$ 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

我会把它留给你把它添加到tcl功能中。

于 2013-07-10T15:24:02.117 回答