Shell命令学习 之,sort,unique 文件简单排序去除重复记录

经常会碰到文件里有重复记录的场景,要么去除重复记录,要么统计下重复记录数,这些简单的功能可以通过shell命令里的sort,uniq组合实现,

比如文件a.txt记录如下

test,test1,test2
test
test1
test2
test,test1,test2
abcd
edfg
abcd
ddddd

去除重复行:

sort a.txt |uniq
abcd
ddddd
edfg
test
test,test1,test2
test1
test2

查找非重复行

[[email protected] ~/]$ sort a.txt |uniq -u

ddddd
edfg
test
test1
test2

查找重复行

[[email protected] ~/]$ sort a.txt |uniq -d
abcd
test,test1,test2

统计

[[email protected] ~/]$ sort a.txt |uniq -c
      1
      2 abcd
      1 ddddd
      1 edfg
      1 test
      2 test,test1,test2
      1 test1
      1 test2

原文地址:https://www.cnblogs.com/dl-ekong/p/8117208.html

时间: 2024-10-15 18:40:24

Shell命令学习 之,sort,unique 文件简单排序去除重复记录的相关文章

linux shell 命令学习(5) xxd- make a hexdump or do the reverse.

对于标准输入或者给定的文件,显示其16进制的内容.也可以反过来进行转换. ? 1 2 3 xxd -h[elp] xxd [options] [infile [outfile]] xxd -r[evert] [options] [infile [outfile]] 如果没有指定输入文件, 则采用标准输入. -b: 以2进制格式进行输出 ? 1 2 3 4 [[email protected] src]$ xxd -b train.ini 0000000: 01011011 01110100 01

0219自学Linux_bash特性+命令学习(cut,sort,uniq,wc,tr,histroy,alias)+通配符glob

09 GPL,BSD,Apache三个开源协定的大体联系及其区别 1.自由软件,版权描述:但是照样是有版权的 2.开源协定,版权描述 www.kernel.org内核版本的版本号查看网址,也是官网 查看最新kernel的最新版本,www.kernel.org习惯了解 列出linux发行版和linux内核的关系 Lniux发行版,GUN:GUN/Linux. 源代码:必须要编译才可以运行,所以发行版是已经将源代码已经编译完成的东西,组合在一起,就形成了发行版,主流的三大发行版:Fedora:它为r

shell命令学习

find命令主要用来进行文件或目录的查找. -print指明打印出匹配的文件名 -print0指明使用'\0'定界符来打印每一个匹配的文件名 -name:按文件名查找 -iname忽略字母大小写 如果想匹配多个条件中的一个,可以采用OR操作: -path将文件路径作为一个整体来匹配. -regex:与path类似,但是基于正则表达式来进行匹配 !否定参数的意义: 基于目录深度的搜索: find命令在使用时会遍历所有的子目录.可以采用参数-maxdepth和-mindepth来限制遍历的深度. 根

Shell命令行中特殊字符与其转义详解(去除特殊含义)

特殊符号及其转义 大家都知道在一个shell命令是由命令名和它的参数组成的, 比如 cat testfile, 其中cat是命令名, testfile是参数. shell将参数testfile传递给cat命令. 但是, 如果参数中含有特殊字符, 比如说*, *我们知道,是表示任意多个(包括0个)任意字符. 那么shell的工作方式是,它会对这些特殊字符进行预先处理, 然后再将处理的结果传给那个命令. 比如说,如果你的当前目录有file, file1, file2 三个文件, 那么当你执行cat

php 命令行脚本运行php文件简单演示

众说周知,php在web服务器领域有着很重要的角色,可是它不仅仅在web领域,只是在web领域表现更为优秀! 它基本有三种用途: web服务端脚本的编写 应用程序图形界面(类似windows自带的计算器程序) 命令行脚本 php作为一门语言,本身可以使一个纯绿色版的文件夹,也就是这个文件夹称为"php语言包" 其中文件夹里面有一个文件:php.exe ,可以用它来执行php代码 首先我们建立一个php文件,然后编辑简单的语句! 在打开cmd命令行,用php.exe执行你所要执行的文件,

C#远程执行Linux系统中Shell命令和SFTP上传文件

一.工具:SSH.Net 网址:https://github.com/sshnet/SSH.NET 二.调用命令代码: Renci.SshNet.SshClient ssh = new Renci.SshNet.SshClient("192.168.1.104", "sindrol", "123456"); ssh.Connect(); while (true) { Console.WriteLine("please input com

linux基础命令学习(六)文件的特殊属性

Linux chattr命令用于改变文件属性. 这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式: a:让文件或目录仅供附加用途.    b:不更新文件或目录的最后存取时间.    c:将文件或目录压缩后存放.    d:将文件或目录排除在倾倒操作之外.    i:不得任意更动文件或目录.    s:保密性删除文件或目录.    S:即时更新文件或目录.    u:预防以外删除. 语法: chattr [-RV][-v<版本编号>][+/-/=<属性>

shell脚本学习(3)文件判断

shell常用的文件判断运算符如下: -e 文件是否存在 -f  文件是否是普通文件(不是目录.设备文件.链接文件) -s  表示文件大小不为0 -d 表示文件是否是目录 -b 表示是块设备(光驱.软盘等) -c  表示是字符设备(键盘.声卡等) -p 表示是管道 -h 表示是符号链接 -S 表示是否是socket -r.-w.-x表示文件是否有可读.可写.可执行权限(指运行这个测试命令的用户) f1 -nt f2      f1是否比f2新(new than) f1 -ot f2      f

使用shell命令遍历目录和子目录文件并输出到文本

"input_dir"代表当前目录,"output_file"代表输出文件,你可以自己根据情况修改, 1 #!/bin/bash 2 function getdir(){ 3 for element in `ls $1` 4 do 5 dir_or_file=$1"/"$element 6 if [ -d $dir_or_file ] 7 then 8 getdir $dir_or_file 9 else 10 echo $dir_or_file