以下是一个不使用排序进行比较两个文件的AWK解决方法的示例代码:
# 读取第一个文件并将每一行存储到数组a中
NR==FNR {
a[$0] = 1
next
}
# 检查第二个文件的每一行是否在数组a中
{
if ($0 in a) {
print "共同行: " $0
delete a[$0] # 从数组a中删除已匹配的行,以便只打印不共同行
} else {
print "不共同行: " $0
}
}
# 打印第一个文件中没有出现在第二个文件中的行
END {
for (line in a) {
print "只存在于第一个文件的行: " line
}
}
要使用上述代码,将其保存为一个名为compare.awk
的文件。然后可以在终端中运行以下命令来比较两个文件:
awk -f compare.awk file1.txt file2.txt
其中file1.txt
和file2.txt
是要比较的两个文件的文件名。上述代码将打印出共同的行、不共同的行以及只存在于第一个文件中的行。