以下のファイルがあります。
1_2345_A_T 0.123 A T 0.0094
4_9784_C_G 0.00034 C G 0.924
10_536_AAAA_TGGTT 0.4456 AAAA TGGTT 0.00045
3_9874_C_T 0.55563 C T 0.8824
5_35555_A_T 0.123 A T 0.0094
....
3900万行があります。
以下のようなファイルを作成したいと思います。
1_2345 0.123 A T 0.0094
4_9784 0.00034 C G 0.924
10_536 0.4456 AAAA TGGTT 0.00045
3_9874 0.55563 C T 0.8824
5_35555 0.123 A T 0.0094
....
列の行の一部だけを削除したいです。よろしくお願いします!
答え1
$ awk '{split($1,Arr,"_");$1=Arr[1]"_"Arr[2]}1' test.txt
1_2345 0.123 A T 0.0094
4_9784 0.00034 C G 0.924
10_536 0.4456 AAAA TGGTT 0.00045
3_9874 0.55563 C T 0.8824
5_35555 0.123 A T 0.0094
最初の列を_(アンダースコア)に分割し、最初の列を最初の2つの配列値に置き換えます。
答え2
また試み
awk '{sub ("_" $3 "_" $4, "", $1)} 1' file