linux shell 文件去除重复行
原始文本文件
$ cat test
jason
jason
jason
fffff
jason
方法一:sort -u
去除重复后
sort -u test
fffff
jason
注意顺序被打乱
方法二:sort test|uniq
去除重复后
$sort test |uniq
fffff
jason
注意顺序被打乱,原理和方法一雷同
方法三:awk '!a[$0]++'
去除重复后
$ awk '!a[$0]++' test
jason
fffff
顺序保持不变,文件去重示例
awk '!a[$0]++' test.txt >test.txt.tmp && mv -f test.txt.tmp test.txt
此处awk使用一个临时文件过度结果
具体原理如下:
awk的程序指令由模式和操作组成,即Pattern { Action }的形式,如果省略Action,则默认执行 print $0 的操作。
实现去除重复功能的就是这里的Pattern:
!a[$0]++
在awk中,对于未初始化的数组变量,在进行数值运算的时候,会赋予初值0,因此a[$0]=0,++运算符的特性是先取值,后加1,因此Pattern等价于
!0
而0为假,!为取反,因此整个Pattern最后的结果为1,相当于if(1),Pattern匹配成功,输出当前记录,对于dup文件,前3条记录的处理方式都是如此。
当读取第2行数据“jason”的时候,a[$0]=1,取反后的结果为0,即Pattern为0,Pattern匹配失败,因此不输出这条记录,后续的数据以此类推,最终成功实现去除文件中的重复行。
linux shell 文件去除重复行相关推荐
- linux排列去重复的命令,实例详细说明linux下去除重复行命令uniq
一,uniq干什么用的 文本中的重复行,基本上不是我们所要的,所以就要去除掉.linux下有其他命令可以去除重复行,但是我觉得uniq还是比较方便的一个.使用uniq的时候要注意以下二点 1,对文本操 ...
- python3 文本文件内容去除重复行
环境:python3.8 import shutil# 文件去除重复行 def remove_duplicates(path):lines_seen = set()outfile = open(f&q ...
- linux去除文件中重复行,Linux Shell教程 - 如何删除重复的文本行
需要对日志文件中的数据进行排序,但是有太多重复的行. 如何从GNU/Linux下的文本文件中删除所有重复的行? 您需要使用shell管道以及以下两个Linux命令行实用程序来排序和删除重复的文本行: ...
- linux多个文件删除重复行,shell中删除文件中重复行的方法
Linux下文本处理工具很丰富很强大,例如这样一个文件: cat log www.jb51.net 192.168.1.1 www.jb51.net 192.168.1.1 www.jb51.net ...
- menisa mysql_实例详细说明linux下去除重复行命令uniq
一,uniq干什么用的 文本中的重复行,基本上不是我们所要的,所以就要去除掉.linux下有其他命令可以去除重复行,但是我觉得uniq还是比较方便的一个.使用uniq的时候要注意以下二点 1,对文本操 ...
- shell脚本--awk数组实现去除重复行
去除重复行的方法有很多,这里介绍三种. 测试文本: [root@172-0-10-222 myscripts]# cat testfile andy 123456 hanna 123456 hello ...
- 文本 去除重复行(sublime Text3 ,正则表达式)
文本 去除重复行(sublime Text3 ,正则表达式) 去除重复行的方法很多,这里通过正则表达式实现: 农林牧渔子类 农林牧渔子类 农林牧渔子类 农林牧渔子类 卫生和社会工作子类 卫生和社会工作 ...
- Pandas 模块-操纵数据(8)-去除重复行 .drop_duplicates()
目录 8. 去除重复行 .drop_duplicates() 8.1 .drop_duplicates() 语法 8.1.1 .drop_duplicates() 语法结构 8.1.2 .drop_d ...
- Linux 打印文件某几行
有这样的面试题:Linux 打印文件第 10-20 行. 在此之前,先造一点数据用于打印测试吧: i=1;while [ $i -le 100 ];do echo "$i 行,测试测试,ov ...
最新文章
- Arm 十年重磅发布 v9 架构,不受 EAR 约束,未来将覆盖 3000 亿颗芯片
- 精通python设计模式-Python设计模式
- 多家大厂接连停产,半导体“最后一里路”面临“瘫痪”?
- timerfd与epoll
- MVC防止xss攻击 ——Html.AntiForgeryToken的AJAX提交
- Visual Studio生成汇编列表文件(listing file)
- 数据科学 IPython 笔记本 8.13 自定义刻度
- 关于PHOTO SHOP CS9.0无法启动adobe updater 请重新安装应用程序和组件解决方法!
- composer 无法更新vonder
- Android WindowManagerImpl杂谈
- (转)左耳朵耗子:技术人如何更好地把控发展趋势?
- Fiddler-本机抓包模拟器
- mac 如何安装 wget
- 2022-2027年中国沙漠旅游行业市场全景评估及发展战略规划报告
- 用算法判断输入的一个数是几位数
- 安卓手机如何打开.crx文件_crx文件怎么打开
- 网络技术大讲堂:什么是IPv6+?
- [rust-003] rust by example学习过程点点滴滴杂记
- Tableau :蝴蝶图
- win7开机启动项设置_Win7系统电脑使用注册表查看开机启动项操作方法