Linux去重命令uniq、截取cut、统计wc
1.去重命令uniq
文本中的重复行,基本上不是我们所要的,所以就要去除掉。使用uniq的时候要注意以下二点
-
对文本操作时,它一般会和sort命令进行组合使用,因为uniq 不会检查重复的行,除非它们是相邻的行。如果您想先对输入排序,使用sort -u。
-
对文本操作时,若域中为先空字符(通常包括空格以及制表符),然后非空字符,域中字符前的空字符将被跳过
用法:uniq [选项]... [文件]
选项与参数:
选项与参数:
-i :忽略大小写字符的不同;
-c :进行计数
-u :只显示唯一的行
去重内容,必须是连续的行,必须要配合sort先排序,再去重,去重也不会修改源文件的内容
#uniq testfile
hello
world
friend
hello
world
hello
#未经排序的文件,将会发现没有任何行被删除
2.文件内容截取命令cut
cut命令可以从一个文本文件或者文本流中提取文本列
用法:cut [选项]... [文件]
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符来取内容。
-d :自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的
范围之内,该字符将被写出;否则,该字符将被排除。
以域取内容-d、-f
[root@@localhost ~]# echo $PATH
/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/games
# 1 | 2 | 3 | 4 | 5 | 6 | 7
将 PATH 变量取出,我要找出第五个路径
#echo $PATH | cut -d ':' -f 5
/usr/local/bin
将 PATH 变量取出,我要找出第一到第三个路径,还有第五个路径。
echo $PATH | cut -d ':' -f 1-3,5
/bin:/usr/bin:/sbin:/usr/local/bin
以字符来取内容-c
将 PATH 变量取出,我要找出第三个路径
[root@localhost ~]# cut -c 11-13 $PATH
3.文件统计命令wc
统计文件里面有多少单词,多少行,多少字符。
选项与参数: # wc [-lwm]
-l :仅列出行;
-w :仅列出多少字(英文单字);
-m :多少字符;
## 举例[root@localhost ~]# wc /etc/services
11176 61033 670293 /etc/services
文件行数 单词数量 字符数量