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

相关推荐
w01_02_032 分钟前
linux, 桌面, 自启动。
linux·运维·服务器
(Charon)7 分钟前
【C++】网络缓冲区设计(三):Chain Buffer链式缓冲区、动态扩容与跨节点读写
服务器·c++
云飞云共享云桌面15 分钟前
SolidWorks+AutoCAD,多并发。可以多人共享一台设计服务器吗
运维·服务器·3d·自动化·制造
伩仁15 分钟前
WSL2 跑起 Web 服务后,本机和局域网设备怎么都能访问?一套两步法彻底搞懂
运维
Yan-英杰16 分钟前
从“投屏“到“办公“,ToDesk鸿蒙版4.8.0.0补齐远控“进入→处理→离开“全流程
服务器·人工智能·爬虫·机器学习·ai开发工具
从零开始的嵌入式之旅26 分钟前
day36
linux·c语言·经验分享·笔记·嵌入式硬件
吴声子夜歌42 分钟前
Linux命令——查找文件
linux·运维·学习
mounter62543 分钟前
Linux 内核 binfmt_misc 深度全景解析:历史、架构、安全
linux·安全·linux kernel·kernel
我命由我1234543 分钟前
Windows 操作系统 - 启用 D 盘虚拟内存
java·运维·服务器·windows·学习·java-ee·运维开发
吴声子夜歌1 小时前
Linux命令——归档与备份
linux·运维·备份·归档