本文主要是介绍Linux命令:uniq命令和wc命令,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
- 1 uniq命令
- 1.1 uniq简介
- 1.2说明
- 1.3案例
- 1、默认输出
- 2、输出重复行
- 3、比较一行中的部分字符
- 4、忽略大小写
- 5、只显示唯一的行
- 2.4 uniq和sort命令配合使用
- 1、文本统计
- 2、统计IP连接数并排序
- 2 wc命令
- 2.1 wc简介
- 2.2 说明
- 2.3 案例
- 1、默认输出
- 2、输出字节、字符数、单词数
- 总结
1 uniq命令
1.1 uniq简介
uniq 命令用于检查及删除文本文件中重复出现的行列。它通过对输入文本进行比较,找出相邻的重复行,并只输出其中的一行。如果文件没有排序,uniq 默认只会删除相邻的重复行,不会删除不相邻的重复行。因此,通常在使用 uniq 之前,会先使用 sort 命令对文件进行排序。
1.2说明
使用:uniq [OPTION]… [INPUT [OUTPUT]]
常用参数:
- -c:在每行前面显示该行重复出现的次数
- -d:只输出重复的行,每个组打印一行
- -D:打印所有重复的行
- -f, --skip-fields=N:比较时会跳过前面N行
- -i:比较时忽略大小写
- -s, --skip-chars=N:比较时会跳过前面N个字符
- -u:只显示唯一的一行
- -z:行分隔符是NUL,而不是换行符
- -w, --check-chars=N:只比较每行前N个字符,之后的字符不再比较
- –help:查看帮助信息
- –version:显示版本信息
1.3案例
先编写一个测试文件
root@con02:~# cat a
abcd
abcd
2374hd67
2374fb;ll
Abcd
abcd
2737834
ijnk
098j dhyyi
7hyt fhyyi
ijnk
2374fb;llroot@con02:~#
1、默认输出
root@con02:~# uniq a
abcd
2374hd67
2374fb;ll
Abcd
abcd
2737834
ijnk
098j dhyyi
7hyt fhyyi
ijnk
2374fb;llroot@con02:~#
统计行数
root@con02:~# uniq -c a2 abcd1 2374hd671 2374fb;ll1 Abcd1 abcd1 27378341 ijnk1 098j dhyyi1 7hyt fhyyi1 ijnk1 2374fb;ll1
root@con02:~# cat a |uniq -c2 abcd1 2374hd671 2374fb;ll1 Abcd1 abcd1 27378341 ijnk1 098j dhyyi1 7hyt fhyyi1 ijnk1 2374fb;ll1
# sort和uniq命令配合使用
root@con02:~# sort a |uniq -c11 098j dhyyi2 2374fb;ll1 2374hd671 27378341 7hyt fhyyi3 abcd1 Abcd2 ijnk
root@con02:~#
2、输出重复行
# -d 和 -D都是输出重复行
# -d:重复行只输出一次
# -D:输出所有重复行root@con02:~# uniq -d a
abcd
root@con02:~# uniq -D a
abcd
abcd
root@con02:~#
3、比较一行中的部分字符
# -s:会跳过前面N个字符,只比较后面的字符
# -w:只比较前面N个字符,之后的字符不再比较root@con02:~# uniq -s 7 -c a2 abcd1 2374hd671 2374fb;ll4 Abcd2 098j dhyyi1 ijnk1 2374fb;ll1
root@con02:~# uniq -s 6 -c a2 abcd1 2374hd671 2374fb;ll2 Abcd1 27378341 ijnk1 098j dhyyi1 7hyt fhyyi1 ijnk1 2374fb;ll1root@con02:~# uniq -w 4 -c a2 abcd2 2374hd671 Abcd1 abcd1 27378341 ijnk1 098j hyyi1 7hyt hyyi1 ijnk1 2374fb;ll1
root@con02:~# uniq -w 5 -c a2 abcd1 2374hd671 2374fb;ll1 Abcd1 abcd1 27378341 ijnk1 098j dhyyi1 7hyt fhyyi1 ijnk1 2374fb;ll1
root@con02:~#
4、忽略大小写
root@con02:~# uniq -i -c a2 abcd1 2374hd671 2374fb;ll2 Abcd1 27378341 ijnk1 098j dhyyi1 7hyt fhyyi1 ijnk1 2374fb;ll1
root@con02:~#
5、只显示唯一的行
root@con02:~# uniq -u -c a1 2374hd671 2374fb;ll1 Abcd1 abcd1 27378341 ijnk1 098j dhyyi1 7hyt fhyyi1 ijnk1 2374fb;ll1
root@con02:~#
2.4 uniq和sort命令配合使用
1、文本统计
有一个 a 文本,要求将所有包含abcd和2374的字符过滤出来,并统计这些字符重复出现的次数。
cat a |grep -iE "abcd|2374"|sort|uniq -c|sort -nr2 abcd2 2374fb;ll1 abcdNUL1 Abcd1 2374hd67# grep -iE "abcd|2374" : 先过滤包含abcd或2374的字符
# sort:进行过滤
# uniq -c 显示该行重复次数
# sort -nr 按照数值从大到小排序
2、统计IP连接数并排序
netstat -antp I grep ESTABLISHED|grep -E "([0-9]{1,3}.){3}[0-9]{1,3}" | awk '{print $5}' | cut -d ":" -f1 | sort -n | uniq -c | sort -nr5 0.0.0.03 127.0.0.1...
2 wc命令
2.1 wc简介
wc 命令可以统计文本文件中的字符数、单词数和行数。它对于快速获取文件的统计信息非常有用,比如检查文件的大小、评估文本内容的长度等。wc 命令可以处理各种类型的文本文件,包括纯文本文件、源代码文件等。
2.2 说明
使用:
- wc [OPTION]… [FILE]…
- wc [OPTION]… --files0-from=F
常用参数:
- -c, --bytes:输出字节数
- -m, --chars:输出字符数
- -l, --lines:输出行数
- -L, --max-line-length:显示最长行的长度
- -w, --words:输出单词数
2.3 案例
测试文件
root@con02:~# cat a
abcd
abcd
2374hd67
2374fb;ll
Abcd
abcdNUL
2737834
ijnk
098j dhyyi
7hyt fhyyi
ijnk
2374fb;llroot@con02:~#
1、默认输出
wc a
13 14 95 a
# 输出内容分别为:行数 字数 字节数 文件
# 如果查看多个文件,会在最后输出每一项的总和wc a /etc/passwd13 14 95 a36 52 1958 /etc/passwd49 66 2053 total
输出行数
root@con02:~# wc -l a
13 a
root@con02:~#
2、输出字节、字符数、单词数
# 输出字节数
root@con02:~# wc -c a
95 a
# 输出字符数
root@con02:~# wc -m a
95 a
# 输出单词数
root@con02:~# wc -w a
14 a
root@con02:~#
输出最长行的长度
root@con02:~# wc -L a
11 a
root@con02:~#
总结
sort命令、wc命令、uniq命令一般都会组合配合使用,再配和grep、awk和cut命令,在实际查询中很常用,尤其是在shell脚本中,所以这几个命令都需要掌握好。
这篇关于Linux命令:uniq命令和wc命令的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!