zoukankan      html  css  js  c++  java
  • 第十一章、认识与学习 BASH 管线命令 (pipe)

    管线命令使用『 | 』界定符号

    [root@www ~]# ls -al /etc | less

    管线命令『 | 』仅能处理经由前面一个命令传来的正确信息,也就是 standard output 的信息,对于 stdandard error 并没有直接处理的能力。

    管线命令的处理示意图
    图 6.1.1、 管线命令的处理示意图
    • 管线命令仅会处理 standard output,对于 standard error output 会予以忽略
    • 管线命令必须要能够接受来自前一个命令的输出数据成为 standard input 继续处理才行。

    撷取命令: cut, grep

    撷取信息通常是针对『一行一行』来分析的, 并不是整篇信息分析


    • cut
    [root@www ~]# cut -d'分隔字符' -f fields <==用于有特定分隔字符
    [root@www ~]# cut -c 字符区间            <==用于排列整齐的信息
    选项与参数:
    -d  :后面接分隔字符。与 -f 一起使用;
    -f  :依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思;
    -c  :以字符 (characters) 的单位取出固定字符区间;
    
    范例一:将 PATH 变量取出,我要找出第五个路径。
    [root@www ~]# echo $PATH
    /bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/games:
    # 1 |    2   |  3  |    4    |       5      |     6        |    7
    
    [root@www ~]# echo $PATH | cut -d ':' -f 5
    # 如同上面的数字显示,我们是以『 : 』作为分隔,因此会出现 /usr/local/bin 
    # 那么如果想要列出第 3 与第 5 呢?,就是这样:
    [root@www ~]# echo $PATH | cut -d ':' -f 3,5
    
    范例二:将 export 输出的信息,取得第 12 字符以后的所有字符串
    [root@www ~]# export
    declare -x HISTSIZE="1000"
    declare -x INPUTRC="/etc/inputrc"
    declare -x KDEDIR="/usr"
    declare -x LANG="zh_TW.big5"
    .....(其他省略).....
    # 注意看,每个数据都是排列整齐的输出!如果我们不想要『 declare -x 』时,
    # 就得这么做:
    
    [root@www ~]# export | cut -c 12-
    HISTSIZE="1000"
    INPUTRC="/etc/inputrc"
    KDEDIR="/usr"
    LANG="zh_TW.big5"
    .....(其他省略).....
    # 知道怎么回事了吧?用 -c 可以处理格式化数据!
    # 我们还可以指定某个范围的值,例如第 12-20 的字符,就是 cut -c 12-20 等等!
    
    范例三:用 last 将显示的登陆者的信息中,仅留下用户大名
    [root@www ~]# last
    root   pts/1    192.168.201.101  Sat Feb  7 12:35   still logged in
    root   pts/1    192.168.201.101  Fri Feb  6 12:13 - 18:46  (06:33)
    root   pts/1    192.168.201.254  Thu Feb  5 22:37 - 23:53  (01:16)
    # last 可以输出『账号/终端机/来源/日期时间』的数据,并且是排列整齐的
    
    [root@www ~]# last | cut -d ' ' -f 1
    # 由输出的结果我们可以发现第一个空白分隔的字段代表账号,所以使用如上命令:
    # 但是因为 root   pts/1 之间空格有好几个,并非仅有一个,所以,如果要找出 
    # pts/1 其实不能以 cut -d ' ' -f 1,2 !输出的结果会不是我们想要的。

    cut 主要的用途在于将『同一行里面的数据进行分解!』最常使用在分析一些数据或文字数据的时候! 这是因为有时候我们会以某些字符当作分割的参数,然后来将数据加以切割,以取得我们所需要的数据。

  • 相关阅读:
    洛谷—— P2234 [HNOI2002]营业额统计
    BZOJ——3555: [Ctsc2014]企鹅QQ
    CodeVs——T 4919 线段树练习4
    python(35)- 异常处理
    August 29th 2016 Week 36th Monday
    August 28th 2016 Week 36th Sunday
    August 27th 2016 Week 35th Saturday
    August 26th 2016 Week 35th Friday
    August 25th 2016 Week 35th Thursday
    August 24th 2016 Week 35th Wednesday
  • 原文地址:https://www.cnblogs.com/ghgyj/p/3987433.html
Copyright © 2011-2022 走看看