bash - 比较第一个以 ; 结尾的字符串 在 2 个 txt 文件中,只获取那些唯一的行
问题描述
我正在尝试比较 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 中,前三行具有相同的“产品 ID”,但价格不同,我不在乎。我只需要找到新的“产品 ID”,这些是字符“;”的第一个数字
解决方案
要修复您的命令并使其仅适用于第一列,您可以执行以下操作:
awk -F';' 'NR == FNR {exclude [$1]; next} !($1 in exclude)' 1.txt 2.txt
推荐阅读
- reactjs - 错误 npm 运行设置“ERR!代码 ELIFECYCLE”
- php - 表单提交后如何重定向到主页并发送确认电子邮件
- jaws-screen-reader - IE 11 - 页面加载后焦点移动到不同计算机上的不同区域
- c# - 单击 UI 按钮时更改 GUI 按钮文本
- firebase - Chrome Extension + Firebase - 在后台调用firebase.database(),内容和弹出脚本等于每个新连接?
- android - 为drawLine和drawBitmap添加动画
- swift - 在 iOS 中获取基于流派的 Youtube 播放列表
- java - 以下java代码给出输出1 2 3。代码是如何执行的?
- php - 如何使用别名连接多个表
- python - 如何并行化写入 h5 文件的数据?