shell基础之工具(一)

一、sort
sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按照ASCII码值进行比较,最后将它们按升序输出(默认情况下都是升序)

sort的常见几个选项:
(1)sort -r:排序方式改为降序
(2)sort -u:在输出行中去除掉重复行
(3)sort -n:以数值来排序
(4)sort -t:设置间隔符
(5)sort -k:(在设置间隔符之后),可以用-k来指定列数进行排序
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
其他选项

  • -f:会将小写字母都转换为大写字母进行比较,亦或忽略大小写
  • -c:会检查文件是否已排好序,如果乱序,则输出第一个乱序的行的有关信息,最后返回1
  • -C:会检查文件是否已排好序,如果乱序,不输出内容,仅返回1
  • -b:会忽略每一行前面的所有空白部分,从第一个可见字符开始比较

二、uniq
uniq命令用于报告或忽略文件中的重复行,一般与sort命令结合使用。

常见选项:
(1)-c: 显示输出中,在每行行首加上本行在文件中出现的次数。它可以取代-u和-d选项
(2)-d:只显示重复行
(3)-u:只显示文件中不重复的各行

小例子:
将sort和uniq工具结合起来,可以求出file1和file2的交集、并集、补集
交集: 把两个文件放到一起排序,只输出次数多于一次的项

sort file1 file2 | uniq -d

这里写图片描述

并集:将两个文件放在一起排序,然后去重

sort file1 file2 | uniq 

这里写图片描述

补集:将两个文件放在一起排序,然后只输出出现一次的数

sort file1 file2 | uniq  -u

这里写图片描述
而且sort和uniq结合起来可以处理海量数据哦!

三、paste
paste命令主要用来将多个文件的内容合并。paste将按行将不同文件行信息放在一行。缺省情况下, paste连接时,用空格或tab键分隔新行中不同文本

常见选项:
(1)-d:指定域分隔符
(2)-s:将每个文件合并成行而不是按行粘贴
(3)-:- 该命令的一个选项。对每一个(-),从标准输入中读一次数据。默认使用空格 或者tab作域分隔符,该选项可以定制输出格式
这里写图片描述
这里写图片描述
四、cut
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。 如果不指定 File 参数, cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。

常见选项:
(1)-b:以字节为单位进行分割(通常以闭区间进行cut)
(2)-c:以字符为单位进行分割
这里写图片描述

乍一看是不是觉得-b选项和-c选项两者之家没啥区别啊,别着急,再看个例子
这里写图片描述
是不是同上个例子感觉不一样了!

-c则以字符为单位,输出正常;而-b只会以字节(8位二进制位)来计算,输出就是乱码(这里因为验证的区间给的太大,没有看到效果,小可爱们可以自行验证一下)。这里的字符,不是

我们C当中的占有一个字节的字符!可以简单理解成,汉字是由多个字节组成的多字节字符!

(3)-d:自定义分隔符,默认为制表符
(4)-f:与-d一起使用,指定显示哪个区域
这里写图片描述
五、xargs(一个十分强大的命令,强大到让人害怕^^)
xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数。xargs也可以将单行或多行文本输入 转换为其他格式,例如多行变单行,单行变多行。xargs的默认命令是echo,空格是默认定界符。这意味着通过管 道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代。xargs是构建单行命令的重要组件之一

选项:
(1)对文件进行格式化输出,将文件的多行输入转成单行输出
(2)-n:指定列数,并多行输出
(3)-d:自定义一个域分隔符,将特定列打散,并指定格式输出
(4)将格式化后的字符串作为命令行参数传递给其他命令,组装完成批量任务
(5)-l:-I指定一个替换字符串{},这个字符串在xargs扩展时会被替换掉(当-I与xargs结合使用, 每一个参数命令都会被执行一次)
这里写图片描述
六、grep(一款强大的文本过滤工具,按照关键字或者正则表达式进行行过滤)

选项:
(1)-E:将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
(2)-v:匹配的行不显示,没有匹配到的行显示出来
(3)-r/R:表示搜索时采用递归搜索
(4)-q:安静模式匹配(不会将匹配结果显示出来)
(5)-i:忽略字符大小写的差别
(6)-n:输出匹配行的 行号
(7)-o:只输出文件中匹配到的部分
这里写图片描述
在这里只介绍了一小部分grep工具的使用,读者可自行去了解一下其他使用选项!!!

猜你喜欢

转载自blog.csdn.net/apt1203JN/article/details/81061611
今日推荐