2013-06-04 68 views
0

比較更換色譜柱我有這樣通過與另一列

1  CC  AAA 

1  Na AAA 

1  Na AAA 

1  Na AAA 

1  Na AAA 

1  CC BBB 

1  Na BBB 

1  Na BBB 

1  xa BBB 

1  CC CCC 

1  Na CCC 

1  da CCC 

我想刪除列2,然後用"01" replce爲AAA"02"BBB等了整個文件的文件。最後的輸出應該看起來像,

1  01 AAA 

1  01 AAA 

1  01 AAA 

1  01 AAA 

1  01 AAA 

1  02 BBB 

1  02 BBB 

1  02 BBB 

1  02 BBB 

1  03 CCC 

1  03 CCC 

1  03 CCC 

我沒有任何線索,使這方面的工作。如果可能,請幫助我。在每個cc中,新的變量開始。即從AAABBB可以在第二列中僅由CC跟蹤。在awk做的

+0

你至少應該做一個解決方案的嘗試,而不是僅僅要求之一。也許這[教程](http://www.grymoire.com/Unix/Awk.html)可以幫助你轉發。祝你好運。 – Qben

回答

0

好像你想:

awk '$2=="CC" { a+=1 } {$2=sprintf("%02d",a)} 1' input 
2

方式一:

awk '$3!=a&&NF{a=$3;x=sprintf("%02d",++x);print $1,x,$3;next}$3==a&&NF{print $1,x,$3;next }1' inputFile 
+0

謝謝你這是工作 – user2451501

1

下面是使用一種方法awk

awk '$3 != r { ++i } { $2 = sprintf ("%02d", i) } { r = $3 }1' OFS="\t" file 

我已經設置了OFS到製表字符,但你可以選擇你喜歡。結果:

1 01 AAA 
1 01 AAA 
1 01 AAA 
1 01 AAA 
1 01 AAA 
1 02 BBB 
1 02 BBB 
1 02 BBB 
1 02 BBB 
1 03 CCC 
1 03 CCC 
1 03 CCC