網頁

2013年3月9日 星期六

grep指令


  • 查找文本工具grep
    • grep是global regular expression print(全局正則表達式打印)的縮寫。
    • grep工作時,總是以行為單位查找。首先將文本的第1行讀入緩陣區并執行查找,如果找到到匹配的字符串,則輸出整行。
    • 常用的選項
      • i:忽略大小寫。
      • n:將結果輸出的同時,也輸出該行的行號。
      • s:在沒有查找到匹配的內容時,不顯示錯誤信息。
      • l:從多個文件中查找時,只輸出找到匹配內容的文件名稱。
      • h:從多個文件中查找時,只輸出匹配的內容,不顯示文件名稱。
      • c:只輸出匹配內容的總行數
      • v:反轉查找,即輸出匹配內容以外的行。
    • 範例:
      • grep "canred" students
      • grep -n "canred" students
      • grep -c "canred" students
      • grep -i "CanRed" students
      • grep -vi "canred" students | grep -vi "eva"
      • 多文件查找
        • grep -l "root" /etc/*
          • 顯示/etc目錄中所有包含有root的文件名
        • grep -h "root" /etc/passwd /etc/shadow
      • 使用grep在命令輸出中查找
        • echo "Welcome to Taiwan" | grep "Taiwan"
      • 使用grep在變量中查找
        • A="Welcome to Taiwan"
        • echo $A | grep "Taiwan"
      • 行首,行尾匹配查找
        • grep '^canred' students
        • grep 'canred$' students
      • 正則表達式查找
        • grep '/9[0-9]' students
        • grep 'c\{3,\}' students
        • grep 'canred\{2\}p$' students
        • ls -l | grep '\.txt$'
      • 使用或、與多匹配模式查找
        • grep -E 'Canred|Eva' students
          • 上面是 或
        • grep 'Canred' students | grep "Eva"
          • 上面是 and ;2者是不一樣的結果
    • grep工具有一個很多的類似的方法如egrep、fgrep、agrep…etc


沒有留言:

張貼留言