正則表達式:REGular EXPression, REGEXP 元字符: .: 匹配任意單個字符 []: 匹配指定範圍內的任意單個字符 [^]:匹配指定範圍外的任意單個字符 字符集合:[:digit:], [:lower:], [:upper:], [:punct:], [:space:], [:alpha:], [:alnum:] 匹配次數(貪婪模式): *: 匹配其前面的字符任意次 a, b, ab, aab, acb, adb, amnb a*b, a?b a.*b .*: 任意長度的任意字符 \?: 匹配其前面的字符1次或0次 \{m,n\}:匹配其前面的字符至少m次,至多n次 \{1,\} \{0,3\} 位置錨定: ^: 錨定行首,此字符後面的任意內容必須出如今行首 $: 錨定行尾,此字符前面的任意內容必須出如今行尾 ^$: 空白行 \<或\b: 錨定詞首,其後面的任意字符必須做爲單詞首部出現 \>或\b: 錨定詞尾,其前面的任意字符必須做爲單詞的尾部出現 分組: \(\) \(ab\)* 後向引用 \1: 引用第一個左括號以及與之對應的右括號所包括的全部內容 \2: \3: 練習: 一、顯示/proc/meminfo文件中以不區分大小的s開頭的行; grep -i '^s' /proc/meminfo grep '^[sS]' /proc/meminfo 二、顯示/etc/passwd中以nologin結尾的行; grep 'nologin$' /etc/passwd 取出默認shell爲/sbin/nologin的用戶列表 grep "nologin$' /etc/passwd | cut -d: -f1 取出默認shell爲bash,且其用戶ID號最小的用戶的用戶名 grep 'bash$' /etc/passwd | sort -n -t: -k3 | head -1 | cut -d: -f1 三、顯示/etc/inittab中以#開頭,且後面跟一個或多個空白字符,然後又跟了任意非空白字符的行; grep "^#[[:space:]]\{1,\}[^[:space:]]" /etc/inittab 四、顯示/etc/inittab中包含了:一個數字:(即兩個冒號中間一個數字)的行; grep ':[0-9]:' /etc/inittab 五、顯示/boot/grub/grub.conf文件中以一個或多個空白字符開頭的行; grep '^[[:space:]]\{1,\}' /boot/grub/grub.conf 六、顯示/etc/inittab文件中以一個數字開頭並以一個與開頭數字相同的數字結尾的行; grep '^\([0-9]\).*\1$' /etc/inittab