网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
sort 命令将以默认的方式将文本文件的第一列以 ASCII 码的次序排列,并将结果输出到标准输出。
使用 cat 命令显示 testfile 文件可知其原有的排序如下:
[root@xiaopeng ~]# cat testfile # testfile文件原有排序
test 30
Hello 95
Linux 85
使用 sort 命令重排后的结果如下:
[root@xiaopeng ~]# sort testfile # 重排结果
Hello 95
Linux 85
test 30
使用 -k 参数设置对第二列的值进行重排,结果如下:
[root@xiaopeng ~]# sort testfile -k 2
test 30
Linux 85
Hello 95
### **3.uniq 去重命令语法及参数**
uniq命令是用来取消重复行的命令,其实和sort -u选项是一样的。
`用法:uniq [选项]... [文件]`
`从输入文件或者标准输入中筛选相邻的匹配行并写入到输出文件或标准输出。`
`不附加任何选项时匹配行将在首次出现处被合并。`
`长选项必须使用的参数对于短选项时也是必需使用的。`
`-c, --count 在每行前加上表示相应行目出现次数的前缀编号`
`-d, --repeated 只输出重复的行`
`-D, --all-repeated[=delimit-method 显示所有重复的行`
`delimit-method={none(``default``),prepend,separate} 以空行为界限`
`-f, --skip-fields=N 比较时跳过前N 列`
`-i, --ignore-``case` `在比较的时候不区分大小写`
`-s, --skip-chars=N 比较时跳过前N 个字符`
`-u, --unique 只显示唯一的行`
`-z, --zero-terminated 使用``'\0'``作为行结束符,而不是新换行`
`-w, --check-chars=N 对每行第N 个字符以后的内容不作对照`
`--help 显示此帮助信息并退出`
`--version 显示版本信息并退出`
`若域中为先空字符(通常包括空格以及制表符),然后非空字符,域中字符前的空字符将被跳过。`
`提示:uniq 不会检查重复的行,除非它们是相邻的行。`
`如果您想先对输入排序,使用没有uniq 的``"sort -u"``。`
删除重复行:
[root@xiaopeng ~]# uniq file.txt
[root@xiaopeng ~]# sort file.txt | uniq
[root@xiaopeng ~]# sort -u file.txt
只显示单一行:
[root@xiaopeng ~]# uniq -u file.txt
[root@xiaopeng ~]# sort file.txt | uniq -u
统计各行在文件中出现的次数:
[root@xiaopeng ~]# sort file.txt | uniq -c
在文件中找出重复的行:
[root@xiaopeng ~]# sort file.txt | uniq -dl
### `4.uniq命令用法演示`
下面的命令删除了相邻的重复行,但是第一行111没有删除。
[root@xiaopeng ~]# uniq uniq.txt
111
223
56
111 # 删除了重复的111
567
223
排序后去重。
[root@xiaopeng ~]# sort uniq.txt | uniq
111
223
56
567
使用-d显示重复的行。
[root@xiaopeng ~]# sort uniq.txt | uniq -d
111
223
使用-D显示所有重复过的行。
[root@xiaopeng ~]# sort uniq.txt | uniq -D
111
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!