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

相关推荐
aosky13 分钟前
一台电脑配置多个 SSH Key 对应不同的 GitHub 账号
运维·ssh·github
云登指纹浏览器1 小时前
WebDriver反检测技术详解:如何让自动化脚本看起来像真实浏览器
运维·自动化·跨境电商
xmtxz1 小时前
计算机网络基础课程学习心得:从理论抽象到硬核实战的进阶之路
运维·学习
凡人叶枫1 小时前
Effective C++ 条款17:以独立语句将 newed 对象置入智能指针
java·linux·开发语言·c++·算法
RisunJan2 小时前
Linux命令-pgrep (通过进程名查找进程 ID)
linux·运维
回忆2012初秋3 小时前
【Nginx】优雅地走进高性能 Web 服务器世界(1)
服务器·前端·nginx
信创工程师-小杨3 小时前
Linux内网环境如何解决依赖的问题
linux·运维·服务器
设计师小聂!3 小时前
宝塔 Linux 面板保姆级教程
linux·mysql·开源·运维开发
不吃土豆的马铃薯3 小时前
C++ 高性能网络缓冲区 Buffer 源码解析
linux·服务器·开发语言·网络·c++
java知路3 小时前
linux yum 下载docker安装包及依赖安装包,并离线安装
linux·运维·docker