重定向及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 09:38
下一篇 2016-08-11 09:38

相关推荐

  • lvm 逻辑卷 和 网络管理

    lvm 逻辑卷 和 网络管理 逻辑卷管理器(LVM) LVM:      Logical Volume Manager, Version: 2  dm: device mapper:     将一个或多个底层块设备组织成一个 逻辑设备的模块   设备名:     /dev/d…

    Linux干货 2016-09-01
  • bash 循环和函数

    回顾: 循环 循环控制:break,continuewhile , for循环的特殊用法for (());do     循环体donewhile read VARAIBLE;do     循环体done <&nbs…

    Linux干货 2016-08-24
  • vim快捷方式

    Vim是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器

    Linux干货 2017-11-26
  • linux启动流程

    linux组成 Linux: kernel+rootfskernel: 进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能 rootfs:程序和glibc库:函数集合, function, 调用接口(头文件负责描述)过程调用:procedure,无返回值函数调用:function程序:二进制执行文件 内核设计流派:单内核(monolithic ker…

    2018-01-01
  • 设计模式 ( 十二 ) 职责链模式(Chain of Responsibility)(对象行为

    1.概述        你去政府部门求人办事过吗?有时候你会遇到过官员踢球推责,你的问题在我这里能解决就解决,不能解决就推卸给另外个一个部门(对象)。至于到底谁来解决这个问题呢?政府部门就是为了可以避免屁民的请求与官员之间耦合在一起,让多个(部门)对象都有可能接收请求,将这些(部门)对象连接成一条链,并且沿着这条链传递…

    Linux干货 2015-07-15
  • bash脚本编程实例

    bash脚本编程实例 1.写一个脚本,判断当前系统上所有用户的shell是否为可登录的shell(即用户的shell不是/sbin/nologin),分别统计这两类用户的个数(通过字符串比较来实现) #!/bin/bash cat /etc/passwd|awk -F: ‘BEGIN{nologin=0;login=0}{if($NF==”/sbin/nol…

    Linux干货 2017-08-28