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

相关推荐
会飞的小新几秒前
Linux PCI 设备查看工具 lspci 的工作机制与使用方法
linux
xingzhemengyou11 分钟前
LINUX modprobe 智能加载和卸载内核模块
linux·服务器·前端
特立独行的猫a1 分钟前
Docker 管理利器:docker-compose-ui 与 Portainer 详解
运维·ui·docker·容器·portainer
gaize12134 分钟前
服务器是什么?有什么用途?如何架设服务器?
服务器
xingzhemengyou15 分钟前
Linux who指令查询和显示当前登录系统的用户信息
linux·服务器·网络
殷忆枫6 分钟前
Ubuntu搭建mosquitto服务器(MQTT服务器)
运维·服务器
恒创科技HK7 分钟前
香港服务器为何需要IPMI?好用吗
运维·服务器·网络
wadesir7 分钟前
Linux MySQL Sysbench一键部署与压测实战教程
linux·mysql·adb
米高梅狮子10 分钟前
6. Linux 硬盘分区管理
linux·运维·服务器
电商API&Tina13 分钟前
跨境电商高并发 API 接口接入指南(技术落地 + 高可用优化)
大数据·服务器·前端·数据库·python·json