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选项来指定分隔符。

相关推荐
FII工业富联科技服务12 分钟前
灯塔工厂用例详解:AR 远程巡检与智能运维闭环落地实践
运维·ar
mounter62517 分钟前
走向长时运行:引入协程(Coroutines),打破 BPF 程序的“一堂到底”限制
linux·ebpf·kernel
六点_dn1 小时前
Linux学习笔记-shell运算符
linux·笔记·学习
hehelm1 小时前
IO 多路复用 — Reactor
linux·服务器·网络·数据库·c++
浅止菌2 小时前
嵌入式项目Makefile越写越乱?一张万能模板+5个技巧,告别重复劳动
linux
BerryS3N2 小时前
Cursor+GitOps:AI驱动的自动化运维新范式
运维·人工智能·自动化
Sagittarius_A*2 小时前
Web 渗透实战:服务器系统识别、端口与中间件全量探测
服务器·网络安全·中间件·渗透测试
刘某的Cloud3 小时前
手工配置nginx的systemd服务
linux·运维·网络·nginx·systemd
FREEDOM_X3 小时前
嵌入式Linux摄像头采集与图像处理
linux·图像处理·ubuntu
studytosky4 小时前
OpenClaw 入门与 Skill 开发
linux·服务器·ai编程