複数の列を含むファイルがあります。最初の列と2番目の列が同じ値を表すこのファイルから行全体を削除したいと思います。
たとえば、私のファイルは次のようになります。
Variant rsid chr pos
1:10177_A_AC rs367896724 1 10177
1:10352_T_TA rs201106462 1 10352
1:10511_G_A rs534229142 1 10511
1:10616_CCGCCGTTGCAAAGGCGCGCCG_C 1:10616_CCGCCGTTGCAAAGGCGCGCCG_C 1 10616
列の値が列とVariant
同じ行を削除したいrsid
ので、次の最終ファイルを取得したいと思います。
Variant rsid chr pos
1:10177_A_AC rs367896724 1 10177
1:10352_T_TA rs201106462 1 10352
1:10511_G_A rs534229142 1 10511
次のコマンドを実行してみました。
awk '$1==$2{sed -i} input.file > output.file
awk -F, '$1==$2' input.file > output.file
しかし、それらのどれも動作しません。
この問題をどのように使用またはawk
解決できますかsed
?
ベストアンサー1
あなたはほぼ成功しました
awk '$1!=$2' input.file > output.file
これにより、最初のフィールドと2番目のフィールドは異なる行を保持します(したがって同じ場合は削除されます)。
-F,
,
フィールド区切り文字ではないため、この設定はawkが行の内容を誤解する可能性があります。'$1==$2{sed -i}
awkやsed機能ではありません。