[TOC]

1.去重命令uniq

文本中的重复行,基本上不是我们所要的,所以就要去除掉。使用uniq的时候要注意以下二点

  1. 对文本操作时,它一般会和sort命令进行组合使用,因为uniq 不会检查重复的行,除非它们是相邻的行。如果您想先对输入排序,使用sort -u。

  2. 对文本操作时,若域中为先空字符(通常包括空格以及制表符),然后非空字符,域中字符前的空字符将被跳过

用法: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
文件行数 单词数量 字符数量

山林不向四季起誓 荣枯随缘