0

私のファイルには何千行もの行があり、次のようになります

R4604                17131G1                   499456.1 1966201.0   0.0  1000001
R4604                17131G1                   499456.1 1966201.0   8.5  1000001
R4604                17131G1                   499456.1 1966201.0   8.5  1000001
R4604                17131G1                   499456.1 1966201.0   8.5  1000001
R4604                17131G1                   499456.1 1966201.0   8.5  1000001
R4604                17131G1                   499456.1 1966201.0   8.5  1000001
R4604                17131G1                   499456.1 1966201.0   8.5  1000001
R4604                17131G1                   499456.1 1966201.0   8.5  1000001
R4604                17131G1                   499456.1 1966201.0   8.5  1000001
R4496                12011G1                   473856.2 1960800.9   0.0  1000001
R4496                12011G1                   473856.2 1960800.9  64.0  1000001

出力として取得したいのは

R4604                17131G1                   499456.1 1966201.0   8.5  1000001
R4496                12011G1                   473856.2 1960800.9  64.0  1000001

したがって、列1〜5が同一の場合は1行だけ取得し、列1〜4が同一で列5の値が異なる場合は、列5の値が0.0の行を削除します

助けてくれてありがとうアレハンドロ

4

1 に答える 1

3

ソートされた値で、列 5 が常にグループ内の各行で 0 またはゼロ以外の同じ値であり、列 5 が 5 に等しい行は保持されないと仮定します。

awk '$5 != 0 {key = $1 $2 $3 $4 $5; if (prev != key) {print saved}; prev = key; saved = $0} END {print saved}' inputfile
于 2012-05-24T19:13:21.720 に答える