阿Q的Linux运维学习之路(day15-2)-Linux输入与输出-管道输出

概述

管道输出我们在之前就提到过
管道操作符号 “|” ,主要用来连接左右两个命令, 将左侧的命令的标准输出, 交给右侧命令的标准输入。但是无法传递标准错误输出至后者命令。
流程示意图在这里插入图片描述
使用格式:
命令1 | 命令2

案例演示
  1. 将/etc/passwd 中的用户按 UID 大小排序

    首先使用awk命令将UID一列取出,再用sort排序
    [root@localhost ~]# awk -F ':' '{print $3}' /etc/passwd | sort -n

  2. 统计当前/etc/passwd 中用户使用的 shell 类型

    先使用awk命令去除shell类型列,使用sort排序胡再uniq去重,
    [root@localhost ~]# awk -F ':' '{print $7}' /etc/passwd | sort | uniq -c

  3. 打印根分区已用空间的百分比(仅打印数字)

    先使用df-h打印磁盘容量,使用grep提取根分区容量的行,最后再使用awk提取可用空间百分比一列,进行一次数据处理
    [root@localhost ~]# df -h | grep "/$" | awk -F '[ %]+' '{print $5}'

管道中的tee技术

tee技术就是将管道左侧命令的输出结果通过tee输出一份到屏幕或者某个文件上。如图
在这里插入图片描述

[root@localhost ~]# ip addr |grep 'inet ' |tee ip.txt |awk -F"/" '{print $1}' |awk '{print $2}'
127.0.0.1
10.0.0.200
[root@localhost ~]# cat ip.txt
    inet 127.0.0.1/8 scope host lo
    inet 10.0.0.200/24 brd 10.0.0.255 scope global noprefixroute ens32

tee和重定向的区别:
重定向使直接将内容写入date.txt文件中
而tee命令执行会输出至屏幕,但会同时保存一份至date.txt文件中

xargs参数传递

xargs参数传递,主要让一些不支持管道的命令可以使用管道技术
例如:

[root@localhost ~]# which cat | xargs ls- l
-rwxr-xr-x. 1 root root 54160 Oct 31 2018 /usr/bin/cat
如果 ls -l 前不加xargs,则查看到的就是当前所在目录的信息了

发布了38 篇原创文章 · 获赞 0 · 访问量 586

猜你喜欢

转载自blog.csdn.net/qq_39095114/article/details/104948102