文件1.txt
SRR1071717
SRR1079830
SRR1081765
SRR1085402
SRR1086236
SRR1092208
SRR1093930
SRR1097296
SRR1099957
SRR1120296
文件2.txt
SRR1120296,female
SRR1099957,male
SRR1097296,female
SRR1093930,female
SRR1092208,female
SRR1086236,female
SRR1085402,male
SRR1081765,male
SRR1079830,male
SRR1071717,male
所需输出
SRR1071717 male
SRR1079830 male
SRR1081765 male
SRR1085402 male
SRR1086236 female
SRR1092208 female
SRR1093930 female
SRR1097296 female
SRR1099957 male
SRR1120296 female
我想保持file1.txt的顺序来打印file2.txt。两个文件具有相同的行(不能使用排序,因为顺序会改变)。
您可以将
file2.txt
中的行存储到数组中,然后使用 file1.txt
中的索引打印它们。 NR==FNR
是您正在读取第一个文件的条件(即 file2.txt
,注意参数的顺序)。
awk -F, '{if (NR==FNR) a[$1]=$0; else print a[$1]}' file2.txt file1.txt
SRR1071717,male
SRR1079830,male
SRR1081765,male
SRR1085402,male
SRR1086236,female
SRR1092208,female
SRR1093930,female
SRR1097296,female
SRR1099957,male
SRR1120296,female