常用的shell命令和工具(sort、uniq、paste、cut、xargs)

1.sort

将文件中的每一行作为一个单位,从首字符向后进行比较,按照ASCLL码值进行比较,最后按照升序输出。
常用的shell命令和工具(sort、uniq、paste、cut、xargs)

常见选项

选项 解释
-r sort默认是升序,-r为降序。
-u 去重。
-n 以数值排序。
-t 设定分隔符
-k 指定第几列

常用的shell命令和工具(sort、uniq、paste、cut、xargs)

其他选项

选项 解释
-f 忽略大小写
-c 检查文件是否排好序,若乱序,输出第一个乱序的行的相关信息,最后返回1.
-C 检查问价是否排好序,若乱序,不输出内容,返回1.
-b 忽略每前一行的所有空白内容,从第一个可见的字符开始比较.

2.uniq

相邻行去重

常见选项

选项 解释
-c 在每行行首加上本行在文件中出现的次数。
-u 只显示不重复的行
-d 只显示重复行

sort -u file 就相当于 sort file | uniq.

如何求两个文件的交集,并集,补集呢?
常用的shell命令和工具(sort、uniq、paste、cut、xargs)

求file1 和 file2 的交集

常用的shell命令和工具(sort、uniq、paste、cut、xargs)

求file1和file2的补集

常用的shell命令和工具(sort、uniq、paste、cut、xargs)

求差集

file1-file2(file1里面有的,file2里面没有)
常用的shell命令和工具(sort、uniq、paste、cut、xargs)
file2-file1(file2里面有的file1里面没有)
常用的shell命令和工具(sort、uniq、paste、cut、xargs)

3.paste

将多个文件合并,paste按行将不同文件行的信息放在一行,缺省用空格或者tab键分割新行中不同文本。
常用的shell命令和工具(sort、uniq、paste、cut、xargs)

常见选项

选项 解释
-d 指定域分割符
-s 将每个文件合并成行
- 每一个-,从标准输入读一次数据,默认使用空格或者tab键作为分割符

常用的shell命令和工具(sort、uniq、paste、cut、xargs)
常用的shell命令和工具(sort、uniq、paste、cut、xargs)

ls /etc | paste - - - - - -//会打印出该目录下的所有文件名,格式是每行6个

4.cut

cut命令从文件中的每一行剪切字节、字符、字段,并写到标准输出上。

常见选项

选项 解释
-b 以字节为单位进行分割
-c 以字符为单位进行分割
-d 自定义分隔符,默认为制表符
-f 与-d一起使用,指定区域

-b选项:

常用的shell命令和工具(sort、uniq、paste、cut、xargs)

-c选项:

常用的shell命令和工具(sort、uniq、paste、cut、xargs)

-f与-d选项:

常用的shell命令和工具(sort、uniq、paste、cut、xargs)

5.xargs

将标准输入数据、管道数据转换为命令行参数,可以将单行或多行文本输入转换为其他格式,例如:多行边单行,单行变多行。xargs默认命令是echo,空格是默认界定符。

常用选项

选项 解释
-n 指定列数,并多行输出
-d 自定义一个分隔域,将特定列打散,并指定格式输出
-I 指定一个替换字符串{}

常用的shell命令和工具(sort、uniq、paste、cut、xargs)
常用的shell命令和工具(sort、uniq、paste、cut、xargs)
常用的shell命令和工具(sort、uniq、paste、cut、xargs)
创建100个以test开头的文件,并将新建的文件,按照xargs的方式删除。
常用的shell命令和工具(sort、uniq、paste、cut、xargs)

补充:

find命令中的print0选项和xargs中的-0选项。
find命令中-print选项是在每一个输出后添加一个回车换行符,而-print0用NULL字符来作为记录的分隔符。为了解决一个文件中有空白字符的情况。
常用的shell命令和工具(sort、uniq、paste、cut、xargs)

6.grep

用来进行文本过滤,按照关键字或者正则表达式进行过滤。

常用选项

—|:—
-E|在扩展正则模式下
-P|在Perl正则模式下
-V|将不匹配的过滤出来
-r/-R|递归查找
-q:安静模式,不在屏幕上输出
-i|忽略大小写
-n|增加行号
-o|只输出文件中匹配到的部分

grep命令和正则