-
正則表達(dá)式元字符查看全部
-
1. 范圍字符 [], [^ ]表示取反 注意區(qū)分 ^字符 :表示以該字符開頭 字符$:表示以該字符結(jié)尾 2. grep "^$" 表示搜索空行查看全部
-
sed 命令格式查看全部
-
grep '[a-zA-Z]' passwd grep -l '' logs/* -R查看全部
-
一、a 命令 #新增加一行,在所選行的下面新增一行,并輸入內(nèi)容 1. 命令格式:sed '行號(hào)+a命令+需要增加的內(nèi)容' 2. 例如:nl passwd | sed '5a======' #在第5行的下面新增一行,并寫入======這些內(nèi)容 3. 例如:nl passwd | sed '1,5a======' #在第1-5行每一行下面都增加一行并寫入同樣的內(nèi)容 二、i 命令 #新插入一行,在所選行的上面插入一行,并輸入內(nèi)容 1. 命令格式:sed '行號(hào)+i命令+需要插入的內(nèi)容' 2. 例如:nl passwd | sed '5i======' #在第5行的上面插入一行,并寫入======這些內(nèi)容 3. 例如:nl passwd | sed '1,5i======' #在第1-5行每一行上面都插入一行并寫入同樣的內(nèi)容 三、c 命令 #替換一行,將所選定的行的內(nèi)容替換成需要替換的內(nèi)容 1. 命令格式:sed '行號(hào)+c命令+需要替換的內(nèi)容' 2. 例如:nl passwd | sed '5c======' #將第5行的內(nèi)容替換成======這些內(nèi)容 3. 例如:nl passwd | sed '1,5c======' #將1-5行整體的內(nèi)容都替換成======這些內(nèi)容 四、d 命令 #刪除一行,將所選行的內(nèi)容全部刪除 1. 命令格式:sed '行號(hào)+d命令+需要替換的內(nèi)容' 2. 例如:nl passwd | sed '5d======' #將第5行的內(nèi)容全部刪除 五、案例一:優(yōu)化服務(wù)器配置 1. 目標(biāo):在SSH的配置文件中加入相應(yīng)的文本: Port 52113 PermitRootLogin no PerminEmptyPasswords no 2. 操作命令:sed '$a \ port 52113 \n permitrootlogin no' ssh_config #在文本尾部的下面增加兩行,并寫入相關(guān)內(nèi)容($美刀符號(hào)定位文本的尾部) 六、案例二:文本處理 1. 目標(biāo):刪除文本中的空行 2. 操作命令:sed '/^$/d' all.txt #刪除文本中的空行查看全部
-
一、基本操作命令 1. p命令:打印相關(guān)的行 1.1 sed 'p' passwd #會(huì)打印出兩行,因?yàn)閟ed的原理是讀入一行,輸出一行,此處再加上p命令打印出來的一行,所以最后會(huì)打印出兩行 1.2 sed -n 'p'passwd #加了-n選項(xiàng)之后,只會(huì)打印出相關(guān)的行,那些不相關(guān)的行則不會(huì)打印出來 二、行定位 1. 定位一行:x;(x為數(shù)字,行號(hào)的意思),/pattern/(pattern為正則表達(dá)式,正則兩邊加上//) 1.1 例如:sed -n '10p' passwd #通過行號(hào)定位,定位到第10行,并打印到屏幕但是無法看到行號(hào) 1.2 例如:nl passwd | sed -n '10p' #使用nl命令顯示文件的行號(hào),再通過管道傳遞給sed進(jìn)行行處理。 1.3 例如:sed -n '/mooc/p' passwd #通過正則定位,定位含有mooc字符串這一行,并打印到屏幕 2. 定位幾行: 2.1 x,y #(定位一個(gè)區(qū)間,x行到y(tǒng)行) 2.1.1 例如:nl passwd | sed -n '10,20p' 2.2 x,/pattern/ #(定位一個(gè)區(qū)間,x為開始的行號(hào),pattren為結(jié)束的正則所表示的行) 2.2.1 例如:nl passwd | sed -n '10,/mooc/p' 2.3 /pattern1/,/pattern2/ #(定位一個(gè)區(qū)間,pattern1為開始的正則1所表示的行,pattern2為結(jié)束的正則2所表示的行) 2.3.1 例如:nl passwd | sed -n '/news/,/mooc/p' 2.4 "!" #感嘆號(hào),對(duì)所選的行進(jìn)行取反 2.4.1 例如:nl passwd | sed -n '10!p' 2.4.2 例如:nl passwd | sed -n '10,20!p' 3.定位間隔幾行: 3.1 first~step (first為開始的行,setp為步長也就是間隔幾行) 3.1.1 例如:nl passwd | sed -n '1~2p' #定位從第1行開始,中間間隔2行的所有的行查看全部
-
一、sed文本處理過程 1. 正則表達(dá)式選定文本調(diào)用sed操作命令進(jìn)行處理 二、sed的格式 1. 命令行格式 1.1 sed [options] 'command' file(s) 1.1.1 options:-e ; -n 1.1.2 command:行定位(正則)+sed命令(操作) 1.1.3 例如:sed -n '/root/p' 1.1.4 例如:sed -e '10,20d' -e 's/false/true/g' 2. 腳本格式 2.1 sed -f scriptfile file(s)查看全部
-
正則內(nèi)容總結(jié)查看全部
-
案例1:匹配4-10位QQ號(hào) ^[1-9][0-9]{3,9}$ 案例2:匹配15位或18位身份證號(hào) ^[1-9]([0-9]{13}|[0-9]{16})[xX0-9]$ 案例3:匹配密碼(密碼規(guī)則為6-18位字符,包含a-zA-Z0-9_) ^\w{6,18}$查看全部
-
一、任意字符串的表示 ".*" #匹配零次或多次任意字符 1. 例如:"^r.*" #匹配r開頭后面有任意多個(gè)字符的行 2. 例如:"m.*c" #匹配m開頭中間有任意多個(gè)字符,c結(jié)尾的字符串 3. 注意 m.*c與m..c的區(qū)別 二、邏輯字符 "|" #表示邏輯或 1. 例如:"bin/(false|true)" #匹配bin/false或者bin/true查看全部
-
一、字符串 #將多個(gè)具體的字符組合起來 1. "root" #匹配root字符串 2. "1000" #匹配1000字符串 3. "m..c" #匹配m開頭、中間有兩個(gè)任意字符、c結(jié)尾的字符串。 4. "[a-z][a-z]" #匹配兩個(gè)在小寫字母a-z這個(gè)范圍的字符串 5. "[0-9][0-9]" #匹配兩個(gè)在數(shù)字0-9這個(gè)范圍的字符串 6. 正則表達(dá)式會(huì)最大化的按照設(shè)定條件匹配,只要符合條件的結(jié)果都會(huì)匹配,在寫正則表達(dá)式的時(shí)候要盡可能的給定一些限制條件,保證我們寫出來的正則相對(duì)準(zhǔn)確 二、字符串組合:通過重復(fù)、邏輯的方式將字符串拼接組合成表達(dá)式 1. 重復(fù):在正則表達(dá)式中有三個(gè)字符可以表達(dá)重復(fù),分別是 * + ? 1.1 * #零次或多次匹配前面的字符或子表達(dá)式 1.1.1 例如:se* #零次或多次匹配前面的e字符,可以匹配s、se、see、seeeeee.... 1.2 + #一次或多次匹配前面的字符或子表達(dá)式 1.2.1 例如:se+ #一次或多次匹配前面的e字符,可以匹配se、see、seeeeee.... 1.3 ? #零次或者一次匹配前面的字符或子表達(dá)式 1.3.1 例如:se? #零次或一次匹配前面的e字符,可以匹配s、se 1.4 ( ) #將多個(gè)字符或字符串組合成一個(gè)子表達(dá)式 1.4.1 例如:(se)* #零次或多次匹配前面的se字符,可以匹配 任意不包含se的字符或字符串甚至空行、se、sesesese 1.4.2 例如:(se)+ #零次或多次匹配前面的se字符,可以匹配 se、sesesese 1.4.3 例如:(se)? #零次或多次匹配前面的se字符,可以匹配 任意不包含se的字符或字符串甚至空行、se 2. 重復(fù)特定次數(shù):{n,m} #n表示重復(fù)的最小次數(shù),m代表重復(fù)的最大次數(shù) 2.1 所以前面的 *:等價(jià)于 {0,}、+:等價(jià)于{1,}、?:等價(jià)于{0,1} 2.2 例如:[0-9]{2,4} #匹配2-3位在數(shù)字0-9這個(gè)范圍的數(shù)字查看全部
-
一、邊界字符:頭尾字符 1. 頭字符 ^ :放在單詞的前面,代表以某個(gè)單詞開始的行 1.1 例如: ^root #匹配以這個(gè)root單詞開始的行 1.2 注意與 [^] 的區(qū)別 2. 尾字符 $:放在單詞的后面,代表以某個(gè)單詞結(jié)尾的行 2.1 例如:$false #匹配以這個(gè)false單詞結(jié)尾的行 3. 空行字符 ^$ #開頭和結(jié)尾中間沒有任何內(nèi)容所以是空行字符 二、元字符:代表普通字符或者具有特殊意義的專用字符 1. \w:# 匹配任何字類字符,包括下劃線 [a-zA-Z0-9_] 2. \W:# 匹配任何非字類字符 [^a-zA-Z0-9_] 3. \b:# 匹配單詞的邊界,用來分隔單詞(只匹配邊界字符的位置,而不匹配位置本身的這個(gè)字符。邊界字符包括 ~`!@#$%^&*( )-=+[];:'"\|,<.>/? 等等這一類怪符號(hào) )查看全部
-
一、字符種類 1. 特定字符 2. 范圍內(nèi)字符 3. 任意字符 二、特定字符:某個(gè)具體的字符 1. 比如某個(gè)字符 '1' 某個(gè)字符 'a' 三、范圍內(nèi)字符:[] 1. 用[]表示 (中括號(hào)可以給需要匹配的字符設(shè)定一個(gè)范圍,注意:中括號(hào)內(nèi)只能匹配單個(gè)字符) 2. 例如:[0-9] #匹配0-9這個(gè)范圍內(nèi)的任意單個(gè)數(shù)字 3. 例如:[258] #匹配258這個(gè)三個(gè)數(shù)字中的任意單個(gè)數(shù)字 4. 例如:[a-z] #匹配小寫字母a-z這個(gè)范圍內(nèi)的任意單個(gè)小寫字母 5. 例如:[A-Z] #匹配大寫字母A-Z這個(gè)范圍內(nèi)的任意單個(gè)大寫字母 四、 取反字符 [^] #代表反向字符,可以對(duì)中括號(hào)內(nèi)的字符范圍進(jìn)行取反(只能在中括號(hào)內(nèi)使用) 1. 例如:[^a-z] # 匹配除了小寫字母a-z這個(gè)字符范圍之外的其他所有字符 五、任意字符 . # 匹配任意一個(gè)字符 (在中括號(hào)外使用) 注意 與 [.] 和 \. 的區(qū)別 #括號(hào) #中括號(hào)的內(nèi) . 代表的是這個(gè)點(diǎn)字符本身的含義,在前面加 \ (轉(zhuǎn)移字符)代表的是這個(gè)對(duì)這個(gè)點(diǎn)字符進(jìn)行轉(zhuǎn)義,(在此處轉(zhuǎn)義成這個(gè)點(diǎn)本身的含義)查看全部
-
正則總結(jié)查看全部
-
任意字符查看全部
舉報(bào)
0/150
提交
取消