linux管道

什么是管道

先拿水管做比喻,水流可以从水管的一端流到另一端
而且水管的一端需要有东西能产生水流,水管的另一端需要有东西能处理水流
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

你可能感兴趣的:(linux管道)