複数のファイルがあり、各ファイルは次のようになります。
HWI-ST913:300:C5W5DACXX:7:1101:1477:2147 Ha1_00044161 80.6 31 6 0 94 2 1 31 5.1e-11 63.2
HWI-ST913:300:C5W5DACXX:7:1101:1629:2128 Ha6_00047653 90.9 33 3 0 2 100 173 205 5.1e-11 63.2
HWI-ST913:300:C5W5DACXX:7:1101:1649:2180 Ha9_00011743 100.0 33 0 0 100 2 274 306 7.8e-12 65.9
HWI-ST913:300:C5W5DACXX:7:1101:1649:2180 Ha5_00006578 100.0 33 0 0 100 2 98 130 7.8e-12 65.9
HWI-ST913:300:C5W5DACXX:7:1101:1649:2180 Ha12_00033467 100.0 33 0 0 100 2 91 123 7.8e-12 65.9
HWI-ST913:300:C5W5DACXX:7:1101:6099:2062 B2KZF9_PICAB 100.0 33 0 0 1 99 73 105 2.4e-13 70.9
HWI-ST913:300:C5W5DACXX:7:1101:6891:2170 Ha2_00026275 87.9 33 4 0 2 100 27 59 9.3e-13 68.9
HWI-ST913:300:C5W5DACXX:7:1101:6891:2170 Ha13_00015465 87.9 33 4 0 2 100 884 916 9.3e-13 68.9
HWI-ST913:300:C5W5DACXX:7:1101:6891:2170 Ha17_00009154 87.9 33 4 0 2 100 420 452 9.3e-13 68.9
最初の列が一意の行だけを維持したいと思います。これが私が望む結果です:
HWI-ST913:300:C5W5DACXX:7:1101:1477:2147 Ha1_00044161 80.6 31 6 0 94 2 1 31 5.1e-11 63.2
HWI-ST913:300:C5W5DACXX:7:1101:1629:2128 Ha6_00047653 90.9 33 3 0 2 100 173 205 5.1e-11 63.2
HWI-ST913:300:C5W5DACXX:7:1101:6099:2062 B2KZF9_PICAB 100.0 33 0 0 1 99 73 105 2.4e-13 70.9
ベストアンサー1
KISSメソッドawk
:行の配列と数を保持し、最後の数が1の行のみを印刷します。
awk '{a[$1]=$0; c[$1]++} END{for (i in a) {if (c[i] == 1) print a[i]}}' file
uniq
-w
または()オプションをサポートするバージョンがある場合--check-chars
:
データは最初のフィールドに基づいてソートされます。
最初のフィールドの幅は一定です。
これにより、次のものを代わりに使用できます。
uniq -uw 40 file
HWI-ST913:300:C5W5DACXX:7:1101:1477:2147 Ha1_00044161 80.6 31 6 0 94 2 1 31 5.1e-11 63.2
HWI-ST913:300:C5W5DACXX:7:1101:1629:2128 Ha6_00047653 90.9 33 3 0 2 100 173 205 5.1e-11 63.2
HWI-ST913:300:C5W5DACXX:7:1101:6099:2062 B2KZF9_PICAB 100.0 33 0 0 1 99 73 105 2.4e-13 70.9
これは、アプリケーションにとって重要な場合は、元のファイルの順序を維持するという利点があります。