重定向和管道及trtee命令

一、重定向

十载专注成都网站制作,成都企业网站定制,个人网站制作服务,为大家分享网站制作知识、方案,网站设计流程、步骤,成功服务上千家企业。为您提供网站建设,网站制作,网页设计及定制高端网站建设服务,专注于成都企业网站定制,高端网页制作,对玻璃隔断等多个行业,拥有丰富的营销推广经验。

    输入重定向,就是将命令的执行结果或者字符串覆盖或者追加到某一个文件中

       命令:>(覆盖)  >>(追加)

     linux输出结果分三种:

        标准输入0:键盘的输入

        标准输出1:默认输出到终端窗口

        错误输出2:默认输出到终端窗口

     根据输出结果输出重定向到文件中:

        > 覆盖正确输出结果重定向到文件

         2> 覆盖错误输出结果重定向到文件

        2>> 追加错误输出结果重定向到文件

        &>  覆盖所有输出重定向到文件

        &>>  追加所有输出重定向到文件

        > file > &1 覆盖所有输出重定向到文件

        合并多个程序重定向到文件中

          (ls;pwd)> f1 多条命令重定向

        >文件内容会被覆盖

           set -C:禁止将内容覆盖已有文件,但可以追加强制覆盖:>|

           set +C:允许覆盖

        >>原有内容基础上,追加内容

    输入重定向

       命令:<

       将文件中的内容传递给命令执行

        cat < /etc/fstab

       cat << EOF 通常卸载脚本中,执行脚本后在屏幕上显示出来,做提示使用

        A

        B

        C

       EOF  

二、管道

    格式:Command1 | Command2 |.....

    管道:将第一条命令的执行结果当做参数传递给第二个命令使用

        cat /etc/fstab | mail -s hello tom

        mail -s hello tom < /etc/fstab

    Command1 | Command2:

        如果Command1能够正确执行,则能将结果传递给Command2,如果错误则不能执行  

            [root@localhost ~]# xecho abcdef | tr -t 'abcde' '11'

            bash: xecho: 未找到命令...

            相似命令是: 'echo'

        如果想将错误的命令也传递给Command2,可采取的方法:

            Command1 2>&1 |Command2 

            Command1 |& Command2       

                [root@localhost ~]# xecho asdfasdf 2>&1 |tr "a-z" 'A-Z'

                BASH: XECHO: 未找到命令...

                相似命令是: 'ECHO'

            

三、tr命令

    选项:

       -d info:删除匹配到info的信息

        [root@localhost ~]# echo abcdefg | tr -d abc                 

        defg

       -c info:补集,除了info之外的     

        [root@localhost ~]# echo abcdefg | tr -cd abc

        abc[root@localhost ~]# 

       -s info:将重复info的去掉,保留一个        

        [root@localhost ~]# echo aabbbcc | tr -s ab

        abcc

       ‘A-Z’ ‘a-z’: 将所有大写字符转换成小写        

        [root@localhost ~]# echo aabbbcc | tr 'a-z' 'A-Z'

        AABBBCC

       -t info1 info2: 按位匹配替换,没有匹配到的位不替换      

        [root@localhost ~]# echo abcdef | tr -t 'abcde' '11'

        11cdef

       info1 info2:  将info1中信息全部匹配替换,配有匹配到的用info2的最后一位填满 

        [root@localhost ~]# echo abcdef | tr 'abcde' '11'

        11111f

四、tee命令

     将上一级的管道传递古来的信息,保存到文件中,并在屏幕伤显示出来。  

      ls | tee /testdir/ls.log | tr 'a-z' 'A-Z' > /tmp/who.out

     默认是覆盖  -a 是追加


        


网页名称:重定向和管道及trtee命令
分享网址:http://azwzsj.com/article/jshedc.html