shell基礎-正規表示式
正規表示式
它用來在檔案中匹配符合條件的字串,正則是包含匹配。grep、awk、sed等命令支援正規表示式。
而萬用字元用來在系統匹配符合條件的檔名,是完全匹配。ls、find、cp這些命令不支援正規表示式,所以只能使用shell自己的萬用字元來進行匹配了。
元字元 作用
* 把前乙個字元匹配0次,或任意次
例子:grep "a*" hh.txt 匹配hh.txt所有內容,包括空白行
grep "aa*" hh.txt 匹配hh.txt中至少包含有乙個a的行。
grep "aaa*" hh.txt 匹配hh.txt中最少包含兩個連續a的行。
. 匹配除換行符外任意乙個字元
例子:grep "s..d" hh.txt 匹配在s和d這兩個字母之間有兩個字元的單詞所在行
grep "s.*d" hh.txt 匹配在s和d字母之間有任意字元的字串所在行
grep ".*" hh.txt 匹配hh.txt所有內容
^ 匹配行首
$ 匹配行尾
例子:grep "^m" hh.txt 匹配以大寫m開頭的行
grep "n$" hh.txt 匹配以小寫n結尾的行
grep "^$" hh.txt 匹配空白行
匹配中括號裡指定的任意乙個字元,只匹配乙個字元
例子:grep "s[ao]id" hh.txt 匹配s和i字母中間,要不是a,要不是o的行。
grep "^[a-z]" hh.txt 匹配小寫字母開頭的行
[^] 匹配除括號裡的字元以外的任意乙個字元
例子:grep "^[^a-z]" hh.txt 匹配不以小寫字母開頭的行。
grep "^[^a-za-z]" hh.txt 匹配不以字母開頭的行,(小寫字母要在前面)。
\ 轉義符
例子: grep "\.$" hh.txt 匹配以"."結尾的行。
\ 匹配前面字元恰好出現n次
例子:grep "a\" hh.txt 匹配a字母連續出現三次的行。
grep "[0-9]\" hh.txt 匹配包含連續的三個數字的行。
\ 匹配前面的字元出現不小於n次
例子: grep "^[0-9]\" hh.txt 匹配最少連續的三個數字開頭的行。
\ 匹配其前面的字元至少出現n次,最多出現m次。
例子:grep "s[ao]id" hh.txt 匹配s和i字母中間有最少乙個a,最多三個a。
shell 正規表示式基礎
1 常用的命令工具 grep egrep vim sed awk 2 基本的正則表達含義 d 匹配字母d 匹配任意單個字元 匹配乙個或多個 匹配任意多個字元 匹配字串的開頭 匹配字串的結尾 匹配集合中的任意單個字元 匹配否定,對括號中的集合取反 x y 匹配x到y連續的字串範圍 匹配轉義後的字串 匹...
Shell基礎之 正規表示式
普通字元 只是字面的意思 元字元 超過字面意思的意義 基本正規表示式元字元及其意義 0個或多個在 字元之前的那個普通字元 匹配任意字元 匹配行首 匹配行尾 匹配字元集合 轉義符 匹配前面字元出現n次 匹配前面字元至少出現n次 匹配前面字元出現n m次 hel o 可以匹配helll8o hello ...
Shell基礎 二 正規表示式
grepls usr bin grep zip cat text.txt grep hello ab10重要引數 i 匹配忽略大小寫 v 取反,即篩選不匹配 c 列印匹配的數量元字元 元字元使用時要用單引號括起來防止引數展開 任何字元 grep zip usr bin 代表任意字元,佔一位,所以 z...