什么是管道
先拿水管做比喻,水流可以从水管的一端流到另一端
而且水管的一端需要有东西能产生水流,水管的另一端需要有东西能处理水流
liunx中的管道也一样,只是linux管道中流动的是数据流
管道的一端有命令产生数据流,管道的另一端有命令处理流过来的数据流
格式
命令 | 命令
管道符是 |
前边就是数据流的来源 后面是处理数据流的命令
举例
先看数据文件
[root@centos76 data]# cat ip.txt
192.168.1.5
192.168.1.20
192.168.1.20
192.168.1.20
192.168.1.20
192.168.1.20
192.168.1.20
192.168.1.20
192.168.1.20
192.168.1.20
192.168.1.20
10.10.0.88
10.10.0.88
10.10.0.88
10.10.0.88
10.10.0.9
如果要过滤出10.10.0.88的行
# cat ip.txt 会产生数据流 经过管道流给grep命令去处理
[root@centos76 data]# cat ip.txt | grep 10.10.0.88
10.10.0.88
10.10.0.88
10.10.0.88
10.10.0.88
管道可以有多个 例如上面的结果再统计一下数量
# grep 过滤后的数据 继续往下流 流给uniq命令继续执行
[root@centos76 data]# cat ip.txt | grep 10.10.0.88 |uniq -c
4 10.10.0.88
注意
管道虽然好用 但是因为多了一层数据流动,所以不要滥用,有些命令是直接可以处理数据的
比如上例中的cat ip.txt | grep 10.10.0.88
直接用grep 也能达到效果
[root@centos76 data]# grep 10.10.0.88 ip.txt
10.10.0.88
10.10.0.88
10.10.0.88
10.10.0.88
网友评论