zoukankan      html  css  js  c++  java
  • Linux下的标准输入,输出,重定向,管道

    Linux系统中,有4个特殊符号  <   >  |  -   在我们处理输入和输出时存在重要但具有迷惑性的作用

    • > 表示重定向 , >filename就是把标准输出村存储到文件filename里面,标准错误错误还是会显示在屏幕上。
    • 2 >&1  表示把标准错误重定向到标准输出。Linux终端用2表示标准错误,1表示标准输出。
    • -(短横线) 表示标准输入,一般用于一个程序需要多个输入的时候。
    • <  标准输入,后面可以跟产生输出的命令,一般用于一个程序需要多个输入的时候,相比-适用范围更广
    • | 管道符,表示把前一个命令的输出作为后一个命令的输入。用于数据在不同的命令之间传输,用途是减少硬盘存取损耗。
    #! /bin/bash
    echo "I am std output"
    #下面是随笔写的一个理论上不存在的命令,会报错
    unexisted_command
    
    #输出
    #I am std output
    #stdout_error.sh: 行 4: unexisted_command:未找到命令
    cat <<END | diff - <(echo "1 2 3" | tr ' ' '
    ')
    >2
    >2
    >4
    >END
    0a1
    >1
    3d3
    <4
    #diff是比较两个文件的差异,需要两个参数
    #-(短横线)表示上一个命令的参数,传递给diff
    #< 表示其后的命令的输出,也重定向给diff

      

    管道符的更多应用  

    echo "actgaaaaacccccg" | tr ' ' '
    ' | wc -l
    >3
    
    echo "a b c" | tr ' ' '
    ' | sed =
    1
    a
    2
    b
    3
    c
    #sed = :先输出行号,再输出每行内容
    
    echo "actg aaaaa ccccg" | tr ' ' '
    ' | sed = | sed 'N;s/
    /	/g'
    >1
    actg
    >2
    aaaaa
    >3
    cccccg
    #N表示读入下一行;sed命令每次只读一行,加上N;之后,就是缓存了第二行
    #s:替换
  • 相关阅读:
    阿诺尔德给5至15岁孩子出的数学题
    上手机器学习,从搞懂这十大经典算法开始
    海报模板
    测度论--长度是怎样炼成的[zz]
    柯西不是你
    搭建Web部署环境
    搭建jdk环境
    Win10远程桌面 出现 身份验证错误,要求的函数不受支持,这可能是由于CredSSP加密Oracle修正 解决方法
    Web开发技术选型之Java与PHP
    从java到web前端再到php,一路走来的小总结
  • 原文地址:https://www.cnblogs.com/shengtudai/p/13499001.html
Copyright © 2011-2022 走看看