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

相关推荐
lzx_0021 小时前
Linux 进程(三) 从进程状态到僵尸进程、孤儿进程
linux·服务器
FlightYe3 小时前
音视频修炼之容器与协议(四):RTSP详解
android·linux·ffmpeg·音视频·dash
刘马想放假4 小时前
CANviz 使用指南|Linux 安装、DBC 解码、实时曲线与 J1939 实战
linux·python·websocket
kloc5 小时前
聊天室项目入口网关子服务的实现
linux·c++
GeW5 小时前
深圳APEC峰会倒计时:数据库与Linux运维的"隐形考场"
linux
梦到啥说啥6 小时前
Linux网络编程:UDP网络协议
linux·网络协议·udp
无足鸟ICT7 小时前
【RHCA+】ipcrm命令(删除IPC资源)
linux
星恒随风8 小时前
MySQL 从零入门(四):表的增删改查与基础查询详解
linux·服务器·数据库·笔记·mysql
Z21-X9 小时前
云原生运维学习笔记:ECShop全链路容器化部署与Docker底层资源隔离深度剖析
运维·笔记·学习·云原生
陈希12311 小时前
Linux 网络诊断工具实战:ping、curl、tcpdump、mtr、dig 用法详解
linux·网络·tcpdump