概述
管道的概念
管道的操纵符号 ‘|’ ,主要的作用连接左右两个命令,将左侧命令的标准输出作为右侧命令的标准输入
案例1
将/etc/passwd中的用户按UID 进行大小排序
从小到大
[root@localhost ~]# sort -t ":" -k3 -n /etc/passwd
从大到小
[root@localhost ~]# sort -t ":" -k3 -nr /etc/passwd
案例2:
统计当前/etc/passwd中用户使用的shell类型
[root@localhost ~]# awk -F ':' '{print $NF}' /etc/passwd | sort | uniq -c |sort -nr
32 /bin/bash
17 /sbin/nologin
1 /sbin/shutdown
1 /sbin/halt
1 /bin/sync
案例3
打印主机的IP
例1:
[root@localhost ~]# grep 'IPADDR' /etc/sysconfig/network-scripts/ifcfg-ens32 | awk -F '=' '{print $2}'
"10.0.0.98"
例2:
[root@localhost ~]# ifconfig ens32 | grep 'inet ' |awk '{print $2}'10.0.0.98
例3:
[root@localhost ~]# ifconfig ens32 | sed -n '2p' | sed -r 's#(^.*et)(.*)(net.*$)#2#g'
10.0.0.98
这就不再写其他的方法了需要的找博主
管道中的tee
tee就相当于我们在标准输出的时候我们可以利用tee管道技术将数据备份到文本中但是又不影响到下右侧命令的输入
案例:
例1:
[root@localhost ~]# ifconfig ens32 | sed -n '2p' | tee IPADDR.txt | sed -r 's#(^.*et)(.*)(net.*$)#2#g'
10.0.0.98
[root@localhost ~]# cat IPADDR.txt
inet 10.0.0.98 netmask 255.255.255.0 broadcast 10.0.0.255
例2:
[root@localhost ~]# ip addr | grep 'inet ' | tee IPADDR.txt | awk -F '/' '{print $1}' | awk '{print $2}' | sed -n '2p'
10.0.0.98
管道中使用xargs技术
xargs参数传递,主要是让一些不支持管道的命令可以或者参数,能够使用管道技术
案例:
例1:
例2:
[root@localhost ~]# which cat | xargs ls
/bin/cat
例3:
[root@localhost ~]# which lsp | xargs ls | xargs rm -rf | ls /bin/lsp
/bin/lsp
/usr/bin/which: no lsp in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
最后
以上就是火星上发带为你收集整理的LINUX中的管道技术的全部内容,希望文章能够帮你解决LINUX中的管道技术所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复