2

フォーラムを検索しましたが、私の質問に対する答えが見つかりませんでした。次のようなファイルがあります。

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

ファイルの 1 列目と 2 列目を既に並べ替えています。1 列目のフィールドが同一である場合、次の行でフィールド 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

ご協力いただきありがとうございます

4

1 に答える 1

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
于 2012-12-13T01:52:39.547 に答える