我试图比较2个txt文件,只得到那些独特的行,问题是行只想基于1个以符号结尾的单词进行比较;因为这才是我感兴趣的

这是示例行:

000000423B;Name;26.46;32.55;0;06;pc.

我需要找出文本文件是否也是000000423B,如果它不显示它或将其保存到文件中

awk 'NR == FNR {exclude [$ 0]; next}! ($ 0 in exclude)' 1.txt 2.txt
and
grep -xvFf 1.txt 2.txt> 3.txt

他们给出了很好的结果,但他们比较了整行,我只需要比较第一个字符;

任何的想法?

我的意见

1.txt:
000000423B;Name;27.47;33.79;0;06;szt.
000010001;Name2;4.42;5.44;0;08;szt.
000010001D;Name3;1.68;2.06;0;06;szt.
2.txt
000000423B;Name;97.47;33.79;0;06;szt.
000010001;Name2;4.99;5.44;0;08;szt.
000010001D;Name3:8778;1.68;2.06;0;06;szt.
009999999;Name4:99999;1.68;2.06;0;96;szt.

我想得到结果:

009999999;Name4:99999;1.68;2.06;0;96;szt.

在1.txt和2.txt中,前三行具有相同的"product id"但是其他price并不在乎。我只需要找到新的"product id",这些是" ; "字符的第一个数字

分析解答

要修复命令并使其仅适用于第一列,您可以执行以下操作:

awk -F';' 'NR == FNR {exclude [$1]; next} !($1 in exclude)' 1.txt 2.txt