我有两个文本文件,每个文本文件都有3个字段。我需要在第三个字段中获得具有相同值的行。第三个字段值在每个文件中都是唯一的。例如:bash-在两个文件中获取具有相同列值的所有行
file1的:
约翰一书300
2礼200
3克里斯100
4安600
file2的:
6凯文250
南希300
8约翰100
输出:
约翰一书300
7南西300
3克里斯100
8约翰100
当我使用下面的命令:
cat file1 file2 | sort -k 3 | uniq -c -f 2
我从输入文件中只获得一个重复值的行。我需要两个!
谢谢!你能告诉我它是如何工作的吗? – ahb65 2014-09-30 20:40:22
@ user3490988 awk先读取file1,将所有行保存在一个“hashtable”键值为第3列,值为行。然后处理第二个文件,检查“hashtable”中file2.line的第三列是否被找到,打印相应的行(a [$ 3])和file2.line。如果你不知道awk的语法,很难详细解释。我建议你阅读awk的手册页。 – Kent 2014-09-30 20:43:36