下面是一个使用awk脚本来比较两个不同文件的不同列并保持顺序的示例:
awk 'BEGIN { FS=OFS="\t" } NR==FNR { a[$1]=$2; next } { if ($1 in a) { if ($2 != a[$1]) print $1, $2, a[$1] } else print $1, $2, "N/A" }' file1.txt file2.txt
解释:
BEGIN { FS=OFS="\t" }
设置输入和输出字段分隔符为制表符。NR==FNR { a[$1]=$2; next }
在第一个文件中,将第一列作为键,第二列作为值存储在数组a中。{ if ($1 in a) { if ($2 != a[$1]) print $1, $2, a[$1] } else print $1, $2, "N/A" }
对于第二个文件中的每一行,如果第一列在数组a中存在,则比较第二列和数组a中的值,如果不同则打印出来;如果第一列在数组a中不存在,则打印第一列、第二列和"N/A"。file1.txt file2.txt
是要比较的两个文件。请注意,此脚本假设两个文件都是以制表符分隔的,并且第一列是用来比较的键。如果文件的格式不同,你需要根据实际情况进行修改。