• Linux 管道符号 | (pipe) 二三事


    管道符 |

    没错,只是一条竖线而已。它可以将它左边命令的输出结果放到它右边的命令里作为输入参数。

    command1 | command2 | command3
    

    注:管道命令必须能够接受来自前一个命令的数据成为 standard input (STDIN 标准输入)继续处理。

    例1:
    ping 命令的帮助信息中, 找到带有 timeout 关键字的 行

    ping --help | grep "timeout"
    

    output:

    [-w timeout] [-R] [-S srcaddr] [-c compartment] [-p]
    -w timeout     Timeout in milliseconds to wait for each reply.
    

    PS:

    grep 命令分析一行信息,如果有匹配的,就将该行拿出来。
    用法可参考 Linux 可用于管道操作的命令 中的 grep 部分

    例2:
    echo 的输出 创建 文件夹名

    echo  foo  | mkdir
    

    会报错。

    echo  foo  | xargs mkdir
    

    这样就可以了

    原因:

    有些命令是不接受管道传参 的, 有些 命令是接受管道传参

    不接受管道传参: echo mkdir

    接受管道传参: grep

    通过 xargsechoSTDOUT (标准输出) 转成 命令行参数 传给了 mkdir, 这样就创建了 foo 文件夹。

    1. xargs 原理图

      xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。

    2. 什么是 STDIN STDOUT STDERR ?

      大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。

      准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)

      摘自: Shell 输入/输出重定向

    参考

    Linux命令大全(手册)
    linux之xargs使用技巧
    Linux xargs 命令

    Linux grep 命令
    Linux 可用于管道操作的命令 #grep

  • 相关阅读:
    git命令小汇总和github
    有关版本控制--SVN
    ng-做一个简单的通讯录--学习使用路由和HTTP
    ng-辅助操作
    ng-router
    ng-http
    ng-指令
    ng-组件
    ng-核心特性(模型概念)
    ng--tolist说明
  • 原文地址:https://www.cnblogs.com/taohuaya/p/15608516.html
Copyright © 2020-2023  润新知