2012-12-13 86 views
2

我搜索了論壇,但沒有找到我的問題的答案。 我有一個看起來像這樣的文件:比較連續行中不在同一列的兩個字段

chr left_pos right_pos 
1 2596 3084 
1 3084 5869 
1 18500 21000 
3 21000 21536 
3 22872 23179 

我已經排序甌上的文件列一個接着第2列: 我想在現場3在下面的對比號碼設定在2場如果第一列中的字段是相同的行。如果是,則在該行的末尾添加相同的標籤。如果不加不等於。

輸出應該是這樣的

chr left_pos right_pos 
1 2596 3084 not_equal 
1 3084 5869 equal 
1 18500 21000 not_equal 
3 21000 21536 not_equal 
3 22872 23179 not_equal 

感謝您的幫助

回答

2

這應該爲你工作:

awk 'NR==1 { print; next } { print $0, ($1 == a && $2 == b) ? "equal" : "not_equal"; a = $1; b = $3 }' file | column -t 

結果:

chr left_pos right_pos 
1 2596  3084  not_equal 
1 3084  5869  equal 
1 18500  21000  not_equal 
3 21000  21536  not_equal 
3 22872  23179  not_equal 
+0

謝謝@Kevin它效果很好 – Matt