重定向和管道符

重定向和管道符

1、重定向(标准输入、标准输出、标准错误)

  1、1数据输入

    --键盘输入(标准输入),但不是唯一的输入方式

     --stdin    

      例1:echo "123456" | passwd --stdin "username"

      例2:功能添加用户useradd.sh user.txt文本文档1000个用户

          ./useradd.sh a

          ./useradd.sh b

          ...

          ./useradd.sh < user.txt

       方法:  

        While lin;do

          [循环体]$line

        Done < /etc/passwd(将这个文件内容放进循环体)

  1、2数据输出

    --显示器(标准输出),但不是唯一输入

  1、3文件标识符[0 - 9]  

    0 ---标准输入

    1 ---标准输出

    2 ---标准错误

  1、4常见重定向符号

    标准输出

      >覆盖重定向

      Set -C 去掉覆盖重定向功能

      >| 强制重定向

      >>追加重定向

    标准输入:

      <  tr  替换文件内容

      << 将多行数据同时输入(用法 cat >>a.txt<<EOF)

    错误输出

      2>

      拓展:不需要输出内容,只需要输出状态;

          Ls /etc/ > /dev/null 2> /dev/null

          $? -eq 0

      2>>

      &> &>> == 2&>1

          Ls/etc/ &> /dev/null

2、管道符 -- tee

  command1 | command2 | command3 | ...

     前一个命令的执行结果交给后一个命令执行;

    【Linux思想:结合小功能,实现大功能】

   tee 一路输入,两路输出

      tee /tmp/tee.out

        如果没有文件,会创建文件,默认揉过文件存在有内容,会覆盖;

     3、文本处理工具

  3、1 sort  : 排序

    默认情况下是按照字符排序

       -n  : 按照数值排序
       -u  : 不出现重复的行(uniq)
       -r  :  逆向排序
       -t  : 指定分段的符号
       -k  :  指定的第几个段

     -f   :忽略字符大小写

   3、2 uniq  : 相当于sort -u

     sort | uniq=sort -u
           -u 只显示不重复的行
           -d 只显示重复的行
           -c 显示出现的几次

   3、3 wc  : 统计

      -l 统计行数

      -m 统计字符数

      -w 统计词

   3、4cut  : 文件分割

      -d 分隔符 (不能指定多个分隔符;不能高级格式化输出)

      --Output -delimiter ‘’ 输出指定的分隔符

      -f 指定段号

        例:f2  指定第二列

      -c 指定第几个字

原文地址:https://www.cnblogs.com/yxq-123/p/11348014.html