Awk 打印一列中的一个元素,用逗号分隔,文件用制表符分隔

Awk 打印一列中的一个元素,用逗号分隔,文件用制表符分隔,awk,sed,Awk,Sed,我有一个大约800万行的大文件。文件以制表符分隔,但在第二列中,某些字段以逗号分隔。以下是我的文件的外观示例: 7 rs3752712,rs3752713 1542124 A G 0.211217 0.590887 7 rs7806171 1542125 A G 0.554353 0.40921 7 rs185709210 1542177 G A 0.510209 0.0081452 在本例中,我想从第1行的第二列(rs3752713)中删除第二项。所需的输出应如下所示: 7 rs3

我有一个大约800万行的大文件。文件以制表符分隔,但在第二列中,某些字段以逗号分隔。以下是我的文件的外观示例:

7 rs3752712,rs3752713 1542124 A G 0.211217 0.590887  
7 rs7806171 1542125 A G 0.554353 0.40921  
7 rs185709210 1542177 G A 0.510209 0.0081452 
在本例中,我想从第1行的第二列(
rs3752713
)中删除第二项。所需的输出应如下所示:

7 rs3752712 1542124 A G 0.211217 0.590887  
7 rs7806171 1542125 A G 0.554353 0.40921  
7 rs185709210 1542177 G A 0.510209 0.0081452

如果您想删除第二个字段中从逗号开始的所有内容,下面的内容可能会对您有所帮助

awk '{sub(/\,.*/,"",$2)} 1'  Input_file
添加
BEGIN{FS=OFS=“\t”}
,以防您的输入文件以制表符分隔,并且您希望输出也以制表符分隔