我们可以使用awk或join命令来比较两个文件中的第二列并打印所有其他列的输出。这里给出使用awk的示例代码:
awk 'BEGIN {FS=OFS="\t"} FNR==NR{a[$2]=$0; next} $2 in a{print a[$2],$1,$3,$4}' file1.txt file2.txt > output.txt
代码解释:
- awk是一个用于文本处理的强大命令行工具。
- 'BEGIN {FS=OFS="\t"}'指定输入和输出的字段分隔符为tab。
- 'FNR==NR{a[$2]=$0; next}'读取第一个文件,将每个行的第二列存储到数组a中,以第二列为键,将整个行作为值。
- '$2 in a{print a[$2],$1,$3,$4}'读取第二个文件,当第二列与数组a的键匹配时,使用print命令打印数组a中的值和第二个文件中的第一列、第三列和第四列。
- '> output.txt'将输出保存到名为output.txt的文件中。
注意:
在使用此命令时,请确保两个文件都按照第二列进行了排序。如果未排序,可以使用sort命令进行排序。