重定向及tr命令详解及其在管道中的使用简述

一、标准输入和输出及其重定向

        1.标准输入指的是来自键盘的输入,通常用0来表示;标注输出是默认输出到当前终端窗口,用1来表示;标准错误输出同样默认输出到当前终端窗口,用2来表示。除标准输出之外,我们还可以通过重定向来更改默认的输入和输出方式。

        2.标准输出重定向用>来表示,可以将输出内容重定向至其他终端或者文件,若重定向至文件,则当文件存在时覆盖并写入,文件不存在时创建并写入,如图所示:

计算机生成了可选文字: |0[ root@snorlaxh  snorlaxh  [ root@snorlaxh  snorlaxh  cat > a  cat a

        标准错误输出重定向可以用2>来表示,可以将错误的命令或者命令中有错误参数的标准错误输出至其他终端或者文件,若重定向至文件,则当文件存在时覆盖并写入,文件不存在时创建并写入,如图所示:

计算机生成了可选文字: |0[root@snorlaxh echol snorlaxh  2>a  [root@snorlaxh cat a  -bash: echol: command not  [root@snorlaxh cat a  -bash: echol: command not  found  found

        标准输入重定向是指将默认来自键盘的输出重定向至某个已存在的文件,用文件中的内容作为这次输入的内容,如图所示:

计算机生成了可选文字: |0[ root@snorlaxh  snorlaxh  [ root@snorlaxh  snorlaxh  cat a  cat < a

        另外,还可将标准输出和标准错误输出重定向至同一终端或者文件,用&>或者2>&1来表示,如下图所示

计算机生成了可选文字: |0[root@snorlaxh Is /a /tmp >a 2>&1  [root@snorlaxh cat a  Is: cannot access /a: No such file or directory  /tmp .  ks-script-Cnm cu  ks-script-PV6SKv  systemd-private-lc6e@b3@9@dc424fb@9eb74e233@7b66-cups . service- u6kP2f  systemd- private- 8ba17657427c4eb68dcc87d298c8a77f- cups . service- VLoodK  yum. log

        注意:以上所有重定向输出中,>表示标准输出重定向至文件时追加内容不覆盖原有内容,将>替换为>>表示标准错误输出重定向至文件时追加内容不覆盖原有内容。

 

二、tr命令

        tr命令表示转换或者删除指定文件或输入中的内容,将SET1中的字符转换成SET2,如下图所示。

计算机生成了可选文字: |0[ root@snorlaxh  ABCDEF  abcDEF  — tr  ABC  abc'

        当SET1与SET2的长度不同时,SET1长时,SET多余部分全部转化为SET2中最后一个字符;SET2长时,多余部分忽略。如下图所示:

计算机生成了可选文字: |0[ root@snorlaxh  ABCDEF  abccEF  [ root@snorlaxh  ABCDEF  abcDEF  ABCD  ABC  abc'  abcd'

        -t 先将set1的内容截取为和set2相同,再进行转化,如图所示:

计算机生成了可选文字: |0[ root@snorlaxh  — tr  -t  ABCDEF  abcDEF  ABCD  abc'

        -d 删除SET1中的字符,如图所示:

计算机生成了可选文字: |0[ root@snorlaxh  -d  — tr  or lax  h  snorlaxh

        -s SET1中的字符重复出现时只保留一个,如图所示:

计算机生成了可选文字: |0[ root@snorlaxh  tr  -s  aaab

        -c 取非SET1中的字符进行转换,如图所示

计算机生成了可选文字: |0[root@snorlaxh tr -sc  abcdabcd  aAaA[ root@snorlaxh

三、管道

        管道用|作为分隔符,将分隔符左侧命令的输出作为分隔符右侧命令的输入来进行命令执行结果的传递,示例如下图所示:

计算机生成了可选文字: |0[ root@snorlaxh  SnoR1aXh  echo snorlaxh I tr 'a-zl  'A-QI  a-q'

        示例中使用了两次管道,作用是先将输出字符中的小写全部转化为大写再进行部分转化。

        当管道分隔符左侧命令执行错误时,可以通过&|或者2>&1|将其结果向右侧命令传送,示例如下图所示:

计算机生成了可选文字: |0[root@snorlaxh echol snorlaxh tr  -baSh: echol: command noT foUnd  'a-zl  'A-ZI ltr  'A-QI  a-q'

计算机生成了可选文字: |0[ root@snorlaxh 一 ] # e c h 01 snorlaxh 2 > & 蚓 t r  -baSh : e c h 01 : command n 0T foUnd  。 a 一 z  . A 一 Z 目 t r

 

这就是今天介绍的主要内容,重定向和管道在linux的 学习中是非常重要的内容,希望大家能多多练习,真正掌握起来。

原创文章,作者:snorlaxh,如若转载,请注明出处:http://www.178linux.com/31786

(0)
snorlaxhsnorlaxh
上一篇 2016-08-11
下一篇 2016-08-11

相关推荐

  • week6

    1、请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白 字符开头的行的行首加#; :%s@^[[:space:]]\+[^[:space:]]@#&@g 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/…

    Linux干货 2016-12-02
  • 第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 答:who | cut -f 1 -d " " | sort -u 2、取出最后登录到当前系统的用户的相关信息。 答:who | tail -n 1 3、取出当前系统上被用户当作其默认shell的最多的那个shell。 答:cut -f7 -d: …

    Linux干货 2016-11-25
  • rpm,yum,编译安装应用详解 (Blog 5)

    rpm, yum, 编译安装全解

    2017-11-27
  • 分享我自己的一个最小化安装CentOS6的初始化脚本

    #!/bin/bash # #Filename:postinstall_init.sh #Description:系统安装完成后,对系统进行一些配置,以符合自己的试验环境 #Author:renpingsheng #Email:995883352@qq.com #Version:1.0 #Date:2017.5.5 setenforce 0 #更改selin…

    Linux干货 2017-05-07
  • N26_第二周作业

    一、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 文件管理命令:cp,mv,rm 1、cp命令 功能说明:复制copy语法格式:        单源复制:  cp [OPTION]… [-T] SOURCE DEST  …

    Linux干货 2017-02-21
  • 8.16

    for 循环是相对比较简单的循环,任何一个循环里面都可以嵌套循环,用for可以解决简单逻辑上的任何循环 。 有两种基本格式:for i in " ";do         或者dor((i=0;i<=9;i++))可以嵌套if或者while等循环 if循环。最重要的是判断的条件,if意为如果什…

    Linux干货 2016-08-19