linux命令 根据某一字段去掉txt中重复的数据

前提:

文档为格式化好的数据。比如一行是一个json。

判断总共有多少行数据:

grep No f.txt | wc -l

查询重复数据有多少行:

grep No f.txt | sort -u | wc -l

找到重复的那行数据:(如果每行的json数据大,可忽略此操作)

grep No f.txt |sort|uniq -d

去除重复数据:

awk -v No=2 '!seen$No++' f.txt > output.txt

去重命令的工作原理是:

  • awk:文本处理工具。

  • -v No=2:设置awk变量No为2,这是我们要去重的列号。

  • !seen[$No]++:前缀运算符!用来判断数组seen中是否存在当前行的第No列的值。如果不存在,则执行后面的操作,即打印当前行。

  • input.txt:输入文件名。

  • > output.txt:将结果输出到output.txt文件中。

请确保你的输入文件是以空格或者制表符分隔的,并且列号是从1开始计数的。如果列与列之间的分隔符是其他字符,可以通过-F选项来指定分隔符。

相关推荐
智恒百亿5 分钟前
从开箱到跑通大模型:一台 RTX 5090 八卡服务器的部署实录(附踩坑清单)
运维·服务器
沫璃染墨7 分钟前
《从零入门Linux系统篇(三十二):文件篇·五——深入理解磁盘:从物理结构到LBA寻址》
linux·运维·服务器·系统架构·硬件架构
Songxwn19 分钟前
Rack-auto 裸金属服务器自动化
运维·服务器·自动化
zlwool25 分钟前
非标设备厂图纸管理选型实战
运维·服务器·erp·设备erp·非标机械
云计算磊哥@28 分钟前
运维开发宝典064-CICD_Nexus3 搭建 maven 私服
运维·maven·运维开发
chen<>33 分钟前
malloc 和 free 背后发生了什么?
java·linux·服务器·操作系统
2601_9620654941 分钟前
interface GigabitEthernet0/0/0
服务器·php·apache
小二李1 小时前
第12章 nestjs服务端开发:RBAC权限系统设计
java·linux·前端
feilieren1 小时前
ubuntu 安装 docker
linux·ubuntu·docker
Tanner_SL1 小时前
Linux笔记之BASH命令行操作
linux·bash