删除文件中某列中的部分行?

删除文件中某列中的部分行?

我有一个如下文件。

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

也试试

awk '{sub ("_" $3 "_" $4, "", $1)} 1' file

相关内容