1. 程式人生 > 其它 >萬用字元+管道實現重定向(練習)

萬用字元+管道實現重定向(練習)

技術標籤:Q&A、筆記、練習linux

  • 萬用字元
    1、顯示/var目錄下所有以L開頭,以一個小字母結尾,且中間出現至少一位數字的檔案或目錄
    ls /var/l*[[:digit:]]*[[:lower:]]
    
    2、顯示/etc目錄下以任意一位數字開頭,且以非數字結尾的檔案或目錄
    ls -d /etc/[[:digit:]]*[^[:digit:]]
    或:
    ll /etc/[0-9]*[^0-9]
    
    3、顯示/etc/目錄下以非字母開頭,後面跟了一個字母及其它任意長度任意字元的檔案或目錄
    ls -a /etc/[^a-Z][a-Z]*
    或:
    ls -a /etc/[^[:alpha:]][:alpha:]*
    
    4、顯示/etc/目錄下所有以rc開頭,並後面是0-6之間的數字,其它為任意字元的檔案或目錄
    ls -d /etc/rc[0-6]*
    
    5、顯示/etc目錄下,所有以.d結尾的檔案或目錄
    ls -d /etc/*.d
    
    6、顯示/etc目錄下,所有.conf結尾,且以m,n,r,p開頭的檔案或目錄
    ls -d /etc/[mnrp]*.conf
    
    7、只顯示/root下的隱藏檔案和目錄
    ls .*
    
    8、只顯示/etc下的非隱藏目錄
    ls /etc/[^.]*
    


  • 管道實現重定向
    1、將/etc/issue檔案中的內容轉換為大寫後儲存至/tmp/issue.out檔案中
    cat /etc/issue | tr [:lower:] [:upper:]
    > /tmp/issue.out
    在這裡插入圖片描述
    2、將當前系統登入使用者的資訊轉換為大寫後儲存至/tmp/who.out檔案中
    who | tr 'a-z' 'A-Z' > /tmp/who.out
    
    在這裡插入圖片描述
    3、一個linux使用者給root發郵件,要求郵件標題為“help”,郵件正文如下:
        Hello,I am 使用者名稱,The system version is here,pls help me to check it,thanks!
    #mail -s help root >>EOF
    >Hello,I am $USER,The system version is here,pls help
    me to check it,thanks! >`lsb_release -a` >EOF
    4、將/root/下檔案列表,顯示成一行,並檔名之間用空格隔開
    ls -a / |tr '\n' ' '
    
    5、計算1+2+3+…+99+100的總和
    echo {1..100} |tr ' ' + |bc
    或:
    seq -s+ 100
    
    6、刪除Windows文字檔案中的回車字元,即“\r”
    cat win.txt |tr -d '\r'
    
    7、處理字串“xt.,| 1 jr#!$mn 2 c*/fe 3 uz 4”,只保留其中的數字和空格
    echo 'xt.,| 1 jr#!$mn 2 c*/fe 3 uz 4' |tr -dc '0-9 '
    或:
    echo 'xt.,| 1 jr#!$mn 2 c*/fe 3 uz 4' |tr -dc [[:digit:][:space:]]
    
    8、將PATH變數每個目錄顯示在獨立的一行
    echo $PATH |tr ':' '\n'
    
    9、將指定檔案中0-9分別替代成a-j
    echo {0..9} |tr '0-9' 'a-j'
    
    10、將檔案/etc/centos-release中每個單詞(由字母組成)顯示在獨立一行
    cat /etc/centos-release |tr ' ' '\n'
    
    在這裡插入圖片描述