我有 2 个文件,一个仅包含一列,另一个包含多个|
- 分隔的列。我需要比较文件 1 和文件 2 并删除公共行,然后将它们复制到新文件中。
“公共”行是 的第 7 列file2
等于 中的(单个)值的行file1
。
- 文件1:
12345 89457 34890
- 文件2:
GTDtech rachel|USA|00|34|ty|ES|12345|789900098|tye FLPEN|MAL|90|45|tui|FE|34890|883562748|yu ahnat|jap|88|91|hb|kl|24424|784284141|fwfhnw
答案1
$ awk -F'|' 'NR==FNR {a[$1]=1; next}; ! ($7 in a)' file1 file2
GTDtech
ahnat|jap|88|91|hb|kl|24424|784284141|fwfhnw
这将读取 file1,并在数组中a
为每一行创建一个元素。然后它读入 file2,打印第 7 列所在的任何行不是在数组中a
。