glob及IO重定向

globbing: 文件名通配

    匹配模式:元字符

          *:匹配任意長度的任意字符

   pa* ,*pa* ,*pa,  *p*a*

   pa, paa, passwd

   ?:  匹配任意單個字符

   pa?

    pa,  paa  符合     passwd不符

   []:匹配指定范圍內的任意單個字符

   有幾種特殊格式; [a-z],[A-z],[a-z0-9]

   [[:upper:]]所有大寫字母

   [[:lower:]]:所有小寫字母

   [[:alpha:]]:所有字母

   [[:digit]]:所有數字

   [[:alnum:]]:所有字母和數字

   [[punct:]]:所有標點符號

   pa[0-9][0-9],z[0-9][0-9]

   [^]:匹配指定范圍外的任意單個字符

   [^[:upper:]]:大寫字母以為的任意字符

   [^0-9]

   [^[:alnum:]]

練習一:顯示/var目錄所有以1開頭,以一個小寫字母結尾,且中間出現一位任意字符的文件或目錄

    ls -d /var/?[[:lower:]] 

練習二:顯示/etc目錄下,以任意一位數字開頭,且以非數字結尾的文件或目錄:

   ls -d /etc/[0-9]*[^0-9]

練習三:顯示/etc目錄下,以非字母開頭,后面跟一個字母及其他任意長度任意字符符文件或目錄

    ls -d/etc/[^a-z][a-z]*

練習四:復制/etc目錄下,所有以m開頭,以非數字結尾的文件或目錄至/tmp/magedu.com 目錄下;

   rm /etc/8eabc 

   cp -r /etc/m*[*0-9] /tmp/magedu.com 練習五:復制/usr/share/man  目錄下,所有以man開頭,后跟一個數字結尾的文件或目錄至/tmp/man/目錄下:

    cp -r /usr/share/man/man[0-9] /tmp/man/

練習6:復制/etc目錄下,所有以.conf結尾,且以m,n,r,p開頭的文件或目錄至/tmp/conf.d/目錄下;

cp -r /etc/[mnrp]*.conf /tmp/conf.d/

  

IO重定向及管道

          程序:指令+數據

                   程序:IO

可用輸入的設備:文件

        鍵盤設備,文件系統上的常規文件,網卡等;

可輸出設備:文件

       顯示器,文件系統上的剎那貴文件,網卡等;

程序是數據流有三種:

輸入的數據流:<—-標準輸入(stdin),鍵盤

輸出的數據流,——->標準輸出    顯示器

fd:file descriptor, 文件描述符

      標準輸入:0

      標準輸出:1

       錯誤輸出:2

IO 重定向: 

       輸出重定向:>

            特性:覆蓋輸出       危險??!

       輸出重定向》 特性:追加輸出

            # set -c  

  禁止覆蓋輸出重定向至已存在的文件

           # set  +c

  關閉上述特性

      錯誤輸出流重定向:2>, 2>>

      合并正常輸出流和錯誤輸出流,(1)  &>,&>> 

(2)COMMAND >/path/to/somefile z>&1

     COMMAND >> /path/to/somefile 2>&

     特殊設備:/dev/null

     輸入重定向:<

 tr [OPTION]….SET1 [SET2]

   把輸入的數據當中的字符,凡是在SET1定義范圍內出現的,通通對位轉換為SET2出現的字符

    tr  abc  ABC        

用法1: tr SET1 SET2  < /PATH/FROM/SOMEFILE

用法2: tr -d SET1 < /PATH/FROM/SOMEFILE

    注意:不修改源文件

Here Document:<<

          cat << EOF

           cat > /PATH/TO/SOMEFILE << EOF

管道:連接程序,實現將前一個面臨的輸出直接定向后一個程序當作輸入數據流

     COMMAND1  | COMMAND2 | COMMAND3|……

    tee命令:

     COMMAND | tee / PATH/TO/SOMEFILE 

練習1:把/etc/passwd文件的前6行的信息轉換為大寫字符后輸出

    head -n  6 /etc/passwd | tr 'a-z' 'A-Z'

命令總結   trtee

原創文章,作者:shadow,如若轉載,請注明出處:http://www.www58058.com/64441

(0)
shadowshadow
上一篇 2016-12-21 21:33
下一篇 2016-12-21 21:48

相關推薦

  • vim簡單操作

    vim第一講 光標在屏幕文本中的移動既可以用箭頭鍵,也可以使用 hjkl 字母鍵。 h (左移) j (下行) k (上行) l (右移) 欲進入 Vim 編輯器(從命令行提示符),請輸入:vim 文件名 <回車> 欲退出 Vim 編輯器,請輸入 <ESC> :q! <回車> 放棄所有改動。 或者輸入 <ESC&gt…

    Linux干貨 2017-07-29
  • shell編程及rpm包

    1. shell編程    case 實現條件判斷, 無論是case后面還是值后面都是沒有任何標點符號的。    case支持通配符, 如果想要表示其他的話, 可以使用*放到最后。 用*表示其他。   2. 用tar打包的文件或則目錄,這些文件或則目錄的的ACL(訪問控制列表)權限會丟失?!?/p>

    Linux干貨 2016-08-18
  • Linux 任務計劃、周期性任務執行

    Linux 任務計劃、周期性任務執行 概述:      什么是任務計劃呢?就像我們每個人日常生活中都會使用到的鬧鐘一樣,按時的去提醒該去做什么事情,以免忘記。同樣,我們在工作當中也要在每天在特定的時間內安排做一些事情,這就是任務計劃,本章將學習如何制定Linux系統的任務計劃,這里主要包括兩種工具:at和crontab…

    Linux干貨 2016-09-11
  • Javascript 裝載和執行

    一兩個月前在淘寶內網里看到一個優化Javascript代碼的競賽,發現有不少的人對Javascript的執行和裝載的基礎并不懂,所以,從那天起我就想寫一篇文章,但一直耽擱了。自上篇《瀏覽器渲染原理簡介》,正好也可以承前啟后。 首先,我想說一下Javascript的裝載和執行。通常來說,瀏覽器對于Javascript的運行有兩大特性:1)載入后馬上執行,2)執…

    Linux干貨 2016-08-15
  • test1

    test 

    Linux干貨 2016-09-15
  • sed大法好

    sed sed概念 (1)基本概念:sed是流編輯器(stream editor),A stream editor is used to perform basic text transformations on an input stream (a file or input from a pipeline).作用就是對輸入的流(文件或者從一個管道輸入的流…

    Linux干貨 2016-12-02
欧美性久久久久