1. 程式人生 > >六周第一次課 9.1 正則介紹_grep上 9.2 grep中 9.3 grep下

六周第一次課 9.1 正則介紹_grep上 9.2 grep中 9.3 grep下

學習 打卡


9.1 正則介紹_grep上
9.2 grep中
9.3 grep下


正則介紹_grep

  • 正則就是一串有規律的字符串
  • 掌握好正則對於編寫shell腳本有很大幫助
  • 各種編程語言中都有正則,原理是一樣的
  • 本章將要學習grep/egrep、sed、awk

grep/egrep命令

  • grep命令:過濾出指定關鍵字的行;
  • 格式:grep [參數] ‘字符’ filename
  • grep -n 顯示符號要求的行,並顯示行號
  • grep -c 打印符合要求的行數
  • grep -v 打印不符合要求的行,取反的意思
  • grep -r 會把目錄下的所有文件全部遍歷;-r針對的是目錄,如果不加-r只能針對文件
  • grep -i 忽略大小寫
  • grep -A2 打印符合要求的行以及下面兩行
  • grep -B2 打印符合要求的行以及上面兩行
  • grep -C2 打印符合要求的行以及上下兩行
  • grep -w 匹配一個完整的單詞
  • grep -E 特殊符號脫意==egrep
  • centos7中自帶 --color顯示顏色 ;
  • grep 跟特殊符號的話,要用單引號
  • grep --include 包含
  • grep -l 只打印出含有匹配字符串的文件名,不輸出具體匹配行的數據

grep/egrep示例:

  • grep -n ‘root‘ test.txt
  • grep -nv ‘nologin‘ test.txt
  • grep ‘[0-9]‘/etc/inittab
  • grep -v ‘[0-9]‘/etc/inittab
  • grep -v ‘^#‘ /etc/inittab
  • grep -v ‘^#‘ /etc/inittab|grep -v ‘^$‘
  • grep ‘^[^a-zA-Z]‘ test.txt
  • grep ‘r.o‘ test.txt
  • grep ‘oo*‘ test.txt
  • grep ‘.*‘ test.txt
  • grep ‘o{2}‘ /etc/passwd
  • egrep ‘o{2}‘ /etc/passwd
  • egrep ‘o+‘ /etc/passwd
  • egrep ‘oo?‘ /etc/passwd
  • egrep ‘root|nologin‘ /etc/passwd
  • egrep ‘(oo){2}‘ /etc/passwd
  • [0-9]:這裏的方括號,表示方括號裏面的任意一個字符;只要有一個數字,不管是幾,就算符合要求。

正則裏面的特殊符號

  • 1 . 表示 任意一個字符
  • 2 * 表示 零個或多個前面的字符
  • 3 .* 表示零個或多個任意字符,空行也包含在內;以r開頭o結尾。
  • 4 ? 表示0個或者1個前面的字符,使用的時候要\ 脫意一下
  • 5 + 表示一個或者多個+前面的字符
  • 6 | 在正則表達式裏面表示或者,可以寫多個,是特殊符號,要使用脫意 或者-E 或者 egrep
  • 7 () 括號表示一個整體,{1,3}大括號表示一個範圍 ? +(){} |都是特殊符號,要使用必須脫意或者-E 或者egrep

    擴展
    把一個目錄下,過濾所有.php文檔中含有eval的行
    grep -r --include="
    .php" ‘eval‘ /data/

六周第一次課 9.1 正則介紹_grep上 9.2 grep中 9.3 grep下