面试官都在问 | Linux命令之uniq

面试官都在问 | Linux命令之uniq

在这里插入图片描述

0. 概述

在我们面试各大公司的时候,关于Linux往往最容易问到的问题之一就是Linux指令,而其中,能够使用命令快速

的检查及删除文本文件中重复出现的行列已经成为了使用Linux系统的必备技能了,所以,面试官往往通过对于该

命令的考察,获取应聘者对Linux环境是否熟悉。我们结合海量面经,提取出最容易被问到的Linux当中检查及删

除文本文件中重复出现的行列的命令以及命令行参数,供大家参考

  • 如何去除文件当中重复的行输出到标准输出设备
  • 如何删除文件当中重复的行输出到指定文件当中
  • 如何在每列旁边显示该行重复的次数
  • 如何只显示出现一次的行
1.linux命令之uniq
1.1 简述

uniq 命令用于检查及删除文本文件中重复出现的行列;如果使用该命令不加任何命令行参数,则视为删除指定文本文件当中重复的行之后进行输出;如果指定输出文件,则输出到指定文件当中。

1.2 高频选项
-c:在每列旁边显示该行重复出现的次数
-u:仅显示出现一次的行
[输入文件] 指定已排序好的文本文件。如果不指定此项,则从标准读取数据
[输出文件] 指定输出的文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端)
1.3 命令测试文件内容

为了让大家看到测试文件当中的内容,使用cat命令查看文件当中内容

cat命令:输出当前文件当中的内容,具体的用法:cat [filename]

[Ann@localhost testuniq]$ cat uniqfile
hello 20
linux 30
linux 30
linux 30
linux 30
nice 40
nice 40
nice 40

我们可以看到:

hello 20 出现了1次

linux 30 出现了4次

nice 40 出现了3次

1.4 去除文件当中重复的行输出到标准输出设备

uniq [filename] : uniq命令加上待去重的文件,就可以将该文件当中的重复的行去掉,只留下不同行的内容,并且输出到标准输出设备上。

[Ann@localhost testuniq]$ uniq uniqfile
hello 20
linux 30
nice 40

uniq : 去重的命令

uniqfile : 待去重的文件名称

hello 20
linux 30
nice 40

上面内容为我们使用uniq命令去重之后输出到标准输出的内容,请注意,在去重的过程中,uniqfile文件内容没有被改变,只是在输出的时候进行了过滤

1.5 删除文件当中重复的行并输出到指定文件当中

uniq [filename1][filename2]:uniq命令加上待去重文件,加上输出文件。这样就可以将重复的行去掉并且输出到输出文件当中去

[Ann@localhost testuniq]$ uniq uniqfile test
[Ann@localhost testuniq]$ cat test
hello 20
linux 30
nice 40

uniq : 去重命令

unqifile : 待去重文件名称

test:输出文件名称

cat test:查看test文件当中的内容,我们可以看到已经将uniqfile当中重复的行去掉,将结果保存在test文件当中

1.6 在每列旁边显示该行重复的次数

uniq -c [filename]uniq命令加上-c命令行参数,加上待去重文件。这样就可以在每列旁边显示该行重复出现的次数

[Ann@localhost testuniq]$ uniq -c uniqfile
      1 hello 20
      4 linux 30
      3 nice 40

-c : uniq命令的命令行参数,在每列旁边显示该行重复出现的次数

1.7 显示出现一次的行

uniq -u [filename]uniq命令加上-u命令行参数,加上待去重文件。这样就可以展示文件当中只出现一次的行

[Ann@localhost testuniq]$ uniq -u uniqfile
hello 20

-u : uniq命令的命令行参数,显示文件当中只出现一次的行

1.7 总结

uniq [filename]:去除文件当中重复的行,输出到标准输出设备

uniq [filename1][filename2]:删除文件当中重复的行,输出到指定文件当中

uniq -c [filename]:在每列旁边显示该行重复的次数

uniq -u [filename]:显示只出现一次的行

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值