管道“|”
管道常用于处理多重处理,把前一个命令的输出作为下一个命令的输入传入。
简单来说,可以看作生产的每一道工序,一个工序做完后传给下一道工序
所以管道符是一个非常常用的,会和多种命令配合使用,下面博主就介绍一些常与“|”配合的命令
1、cat命令
截取字符串
选项:
-d:后面接分隔符,分隔符要用引号括起来要和-f配合。
-c:后面接的是第几个字符。
-b: 后面接的是第几个字节
-f:后面接的是第几个区块。
演示:
按照“:” 分割,并且获取第一个区块的内容
注意可以使用, - 连接数字 ,是指定的这几个区块连起来 -是第几个区块到第几个区块
cat /etc/passwd |cut -d ":" -f1|head -5
,和- 区别
-c和-b的差别具体体现在对汉字的截取
2、sort命令
对输入排序
选项:
-t: 后面跟分隔符,作用和cut -d一样
-n:表示使用纯数字排序
-r:表示反向排序
-u:表示去重复
-kn1,n2:表示由n1区间排序到n2区间,可以只写-kn1,即只对n1字段排序
没啥好说的,就是排序,根据选项自己调节排序规则
按照:分区,然后按照分区一来排序
3、wc命令
统计
选项:
-l(统计行数)
-m(统计字符数)
-w(统计词数)
4、uniq命令
删除重复行
选项:
-c:在数据行前出现的次数
-d:只打印重复的行,重复的行只显示一次
-D:只打印重复的行,重复的行出现多少次就显示多少次
-f:忽略行首的几个字段
-i:忽略大小写
-s:忽略行首的几个字母
注意必须要连续的重复才可以成功删除
必须重复,所以一般搭配sort命令使用
5、 tee命令
类似于重定向>,但是它会显示追加了什么内容
6、tr命令
用来实现替换
选项:
-d:表示删除某个字符,后面跟要删除的字符。
-s:表示删除重复的字符。
7、split命令
用于切分字符串
选项:
-b:值为每一输出档案的大小,单位为 byte。
-C:每一输出档中,单行的最大 byte 数。
-d:使用数字作为后缀。
-l:值为每一输出档的行数大小。
-a:指定后缀长度(默认为2)。
8、awk命令
awk可以对读入的每一行进行切分,并且内部支持使用判断、循环、变量、甚至数组,功能十分强大,还可以输出,可以说是功能最灵活的文本格式化处理工具。
基本语法:
awk [options] ‘/pattern/ {action}’ FILE
选项(options):
-F | 指定分隔字段符 |
-v | 定义或修改一个awk内部变量 |
-f | 从脚本文件中读取awk命令 |
模式(pattern):
/正则/ 内部写正则匹配,只有满足正则的才会被匹配处理
BEGIN{} 在开始处理时执行一次
END{} 在结束处理时执行一次
{action}:最常使用print printf进行输出
内置变量:
$n | 指定分隔符后,当前的第n个列所在的字段 |
$0 | 完整的一行记录 |
FS | 字段分隔符,默认是空格 |
FILENAME | 当前处理文件名 |
ARGC | 命令行参数的个数 |
NF | 字段分隔后,当前一共多少个字段 |
NR | 当前记录数,行数 |
操作符:
几乎适用所有操作符
== += + - * / &&等等
但是有独特的操作符
~:匹配正则
!~:不匹配正则
举例:
以 :分割 且以bash结尾的第一个截取的字段
获取以#开头的行数个数,最后再输出总和
这个例子使用了两次管道
我们来一一分析
首先第一个awk 按照%把内容拆分成两段,输出第一段给下个awk处理,
解释一下/^\/dev的意思就是以/dev开头的意思啦,\用来转义
然后第二个awk,默认按照空格来切分,最后一段,也就是%前面的字段,如果大于5就输出文件系统的名字
总结:找出已用超过5%的文件系统名
awk的强大功能远不止如此,还可以结合whlie,for,函数一起使用(太强了)
以上就是一些可以与“|”管道符,联合使用的命令,以上命令的选项只截取常用部分,且还会继续更新
如果有错误欢迎评论区言