2013-07-10 85 views
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 

也我需要補充DEX 例如

1 422 
2 472 
3 251 
4 060 
5 074 

最後我需要添加該代碼作爲TCL porgram的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 

感謝狀

回答

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功能。

+0

很酷..我不知道變量可以像這樣用作模式(*我一直在寫* * a [$ 2]!=「」{body}') – WYSIWYG