正則介紹_grep

正則介紹_grep(上)

正則介紹

  • 正則就是一串有規律的字符串
  • 掌握好正則對編寫shell腳本有很大幫助
  • 各類編程語言中都有正則,原理是同樣的
  • 經常使用的工具備grep/egrep、sed、awk

grep

過濾指定的關鍵詞,格式爲:grep [-cinvABC] '關鍵詞' filenameshell

-c:表示打印符合要求的行數編程

-n:表示輸出符合要求的行及行號vim

-i:不區分大小寫編程語言

不加i,不顯示第2行工具

加上i,就顯示修改過的大寫字母spa

-v:取反,打印不符合要求的行ci

-r:遍歷全部子目錄字符串

匹配全部帶root的文件it

 -A :後面跟一個數字,過濾出符合要求的行以及下面n行awk

-B:後面跟一個數字,過濾出符合要求的行以及上面n行

-C:後面跟一個數字,過濾出符合要求的行以及上下各n行

grep(中)

grep用法

  • grep '[0-9]':表示過濾出包含數字的全部行

  • grep v '[0-9]':表示過濾出不包含數字的全部行

# vim /etc/inittab,:set nu可查看行數

  • grep -v '^#':表示過濾掉全部已#開頭的行,^表示以什麼開頭

  • grep  '[^0-9]':表示過濾掉全部數字,^在中括號裏表示非的意思

  • grep  -n '^[^0-9]':表示過濾出以非數字開頭的行和行號

  • grep  -nv '^[^0-9]':表示過濾出以數字開頭的行和行號

grep(下)

  • grep 'r.o':表示過濾出任意的一個字符, . 表示任意一個字符

  • grep 'o*o':表示過濾出零個到多個o(*前面的字符)

  • grep '.*':表示過濾出任意字符

實例用法:

  • grep 'o\ {2\ }' :表示過濾出指定字符出現的次數,{}能夠是一個範圍,如'o\ {0,3\ }'

還有兩種表示方法:egrep 'o{2 }'   grep -E 'o {2 }'

  • grep 'o+o':表示過濾出1個到多個o(+前面的字符)

  • grep 'o?t':表示過濾出零個到1個o(?前面的字符)

  • grep -E 'root|nologin' ,|表示或者的意思

總結:

. 表示任意一個任意字符

 * 表示零個或多個*前面的字符

.* 表示通配,全部的都匹配

{} 表示範圍,{}花括號前面字符的一個範圍

+表示一個或多個+號前面的字符

?表示0個或一個問號前面的字符

|表示或者

相關文章
相關標籤/搜索