面试官都在问 | Linux命令之uniq
0. 概述
在我们面试各大公司的时候,关于Linux往往最容易问到的问题之一就是Linux指令,而其中,能够使用命令快速
的检查及删除文本文件中重复出现的行列已经成为了使用Linux系统的必备技能了,所以,面试官往往通过对于该
命令的考察,获取应聘者对Linux环境是否熟悉。我们结合海量面经,提取出最容易被问到的Linux当中检查及删
除文本文件中重复出现的行列的命令以及命令行参数,供大家参考
- 如何去除文件当中重复的行输出到标准输出设备
- 如何删除文件当中重复的行输出到指定文件当中
- 如何在每列旁边显示该行重复的次数
- 如何只显示出现一次的行
1.linux命令之uniq
1.1 简述
uniq
命令用于检查及删除文本文件中重复出现的行列;如果使用该命令不加任何命令行参数,则视为删除指定文本文件当中重复的行之后进行输出;如果指定输出文件,则输出到指定文件当中。
1.2 高频选项
1.3 命令测试文件内容
为了让大家看到测试文件当中的内容,使用cat命令查看文件当中内容
cat
命令:输出当前文件当中的内容,具体的用法:cat [filename]
我们可以看到:
hello 20
出现了1次
linux 30
出现了4次
nice 40
出现了3次
1.4 去除文件当中重复的行输出到标准输出设备
uniq [filename]
: uniq命令加上待去重的文件,就可以将该文件当中的重复的行去掉,只留下不同行的内容,并且输出到标准输出设备上。
uniq
: 去重的命令
uniqfile
: 待去重的文件名称
上面内容为我们使用uniq命令去重之后输出到标准输出的内容,请注意,在去重的过程中,uniqfile文件内容没有被改变,只是在输出的时候进行了过滤
1.5 删除文件当中重复的行并输出到指定文件当中
uniq [filename1][filename2]
:uniq命令加上待去重文件,加上输出文件。这样就可以将重复的行去掉并且输出到输出文件当中去
uniq
: 去重命令
unqifile
: 待去重文件名称
test
:输出文件名称
cat test
:查看test文件当中的内容,我们可以看到已经将uniqfile当中重复的行去掉,将结果保存在test文件当中
1.6 在每列旁边显示该行重复的次数
uniq -c [filename]
:uniq
命令加上-c
命令行参数,加上待去重文件。这样就可以在每列旁边显示该行重复出现的次数
-c
: uniq
命令的命令行参数,在每列旁边显示该行重复出现的次数
1.7 显示出现一次的行
uniq -u [filename]
:uniq
命令加上-u
命令行参数,加上待去重文件。这样就可以展示文件当中只出现一次的行
-u
: uniq
命令的命令行参数,显示文件当中只出现一次的行
1.7 总结
uniq [filename]
:去除文件当中重复的行,输出到标准输出设备
uniq [filename1][filename2]
:删除文件当中重复的行,输出到指定文件当中
uniq -c [filename]
:在每列旁边显示该行重复的次数
uniq -u [filename]
:显示只出现一次的行