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

相关推荐
峥嵘life18 小时前
Android16 EDLA 认证测试CTS问题分析解决
android·java·服务器
学习&笔记18 小时前
MTK(系统篇)user版本无法使用setenforce 0命令关闭selinux权限
linux·运维·服务器
Bdygsl18 小时前
Linux(8)—— 进程优先级与环境变量
linux·运维·服务器
another heaven18 小时前
【软考 磁盘磁道访问时间】总容量等相关案例题型
linux·网络·算法·磁盘·磁道
吕了了18 小时前
87 Windows 系统安装的本质是什么?
运维·windows·电脑·系统
阿里巴巴P8资深技术专家19 小时前
docker容器启动报错
运维·docker·容器
杨云龙UP20 小时前
MySQL 8.0.x InnoDB 写入链路优化:Redo Log 与 Buffer Pool 扩容与缓冲区调优实战记录-20251029
linux·运维·数据库·sql·mysql
hashiqimiya20 小时前
两个步骤,打包war,tomcat使用war包
java·服务器·前端
我命由我1234520 小时前
python-dotenv - python-dotenv 快速上手
服务器·开发语言·数据库·后端·python·学习·学习方法
txzz888820 小时前
CentOS-Stream-10 系统安装之网络设置
linux·运维·服务器·网络·计算机网络·centos