内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

正則表達(dá)式及Linux三大文本處理工具是什么-創(chuàng)新互聯(lián)

這篇文章主要介紹了正則表達(dá)式及Linux三大文本處理工具是什么,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),開州企業(yè)網(wǎng)站建設(shè),開州品牌網(wǎng)站建設(shè),網(wǎng)站定制,開州網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,開州網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

grep、sed和awk都是文本處理工具,雖然都是文本處理工具但卻都有各自的優(yōu)缺點(diǎn),一種文本處理命令是不能被另一個(gè)完全替換的,否則也不會(huì)出現(xiàn)三個(gè)文本處理命令了。

一、正則表達(dá)式

1、匹配字符的類型

[a-z]:小寫字母

[A-Z]:大寫字母

[a-Z]:小或大寫字母

[0-9]:數(shù)字

[a-zA-Z0-9]:表示匹配一個(gè)為字母或數(shù)字的字符

. :匹配1個(gè)任意字符,空格除外

[0-f]:16進(jìn)制數(shù)

abc | def:abc或def
a (bc | de) f:abcf 或 adef

\<:?jiǎn)卧~頭 單詞一般以空格或特殊字符做分隔,連續(xù)的字符串被當(dāng)做單詞

\>:?jiǎn)卧~尾

[^表達(dá)式]:除小寫字母以外的所有字符,如此類推。

2、后跟以下符號(hào)控制匹配的數(shù)量


此類符號(hào)的左側(cè)要有上面第一點(diǎn)的表達(dá)式

表達(dá)式*:0或n個(gè)字符

表達(dá)式+:1或n個(gè)字符

表達(dá)式?:0或1個(gè)字符

表達(dá)式{n}:n個(gè)字符

表達(dá)式{n:m}:n到m個(gè)字符

表達(dá)式{n,}:至少n個(gè)字符

【例】[a-z]*表示匹配0個(gè)或多個(gè)小寫字母

3、將匹配的字符控制在頭尾
^表達(dá)式:頭部符合

表達(dá)式$:尾部符合

二、Linux三大文本處理工具

1、egrep 篩選工具

grep的擴(kuò)展版,可以使用正則表達(dá)式

語(yǔ)法:

egrep -選項(xiàng)  '正則表達(dá)式'  文件名

選項(xiàng):

-n :顯示行號(hào)
-o :只顯示匹配的內(nèi)容
-q :靜默模式,沒(méi)有任何輸出,得用$?來(lái)判斷執(zhí)行成功沒(méi)有,即有沒(méi)有過(guò)濾到想要的內(nèi)容
-l :如果匹配成功,則只將文件名打印出來(lái),失敗則不打印,通常-rl一起用,grep -rl 'root' /etc
-A :如果匹配成功,則將匹配行及其后n行一起打印出來(lái)
-B :如果匹配成功,則將匹配行及其前n行一起打印出來(lái)
-C :如果匹配成功,則將匹配行及其前后n行一起打印出來(lái)
--color
-c :如果匹配成功,則將匹配到的行數(shù)打印出來(lái)
-i :忽略大小寫
-v :取反,不匹配
-w:匹配單詞

2、sed 流編輯器

語(yǔ)法:

語(yǔ)法1:sed  -選項(xiàng)  '數(shù)字定位+命令'  文件名

選項(xiàng):

-n:靜默模式,不輸出
-e:多項(xiàng)編輯,這個(gè)不是很清楚
-i:直接修改文件內(nèi)容,而不是輸出
-r:擴(kuò)展模式,可使用正則表達(dá)式
-f:指定文件名,將動(dòng)作寫在新的文件內(nèi)

命令:

a ∶ 追加append,
c ∶ 改變change,
d ∶ 刪除delete,
i ∶ 插入insert, i 的后面可以接字串,而這些字串會(huì)在新的一行出現(xiàn)(目前的上一行)
p∶ 列印print
s∶ 取代substitute,可以直接進(jìn)行替換的工作。通常這個(gè) s 的動(dòng)作可以搭配正則表達(dá)式。例如 1,20s/old/new/g

*s命令特別說(shuō)明:

使用{命令1:命令2:命令3}可增加使用多個(gè)命令

語(yǔ)法2:sed  -r  '替換命令s/正則表達(dá)式/替換內(nèi)容/貪婪選項(xiàng)g'  文件名

定位的兩種方法:

①數(shù)字定位(輸入行序號(hào)定位)

十進(jìn)制數(shù)
1:?jiǎn)涡?br/>1,3:范圍 從第一行到第三行
2,+4:匹配行后若干行
4,~3:從第四行到下一個(gè)3的倍數(shù)行
2~3:第二行起每間隔三行的行
$:尾行
1!:除了第一行以外的行

【例】sed -n '1p' /etc/passwd

②正則表達(dá)式定位

正則必須用//包裹起來(lái)

擴(kuò)展正則需要用 -r 參數(shù)或轉(zhuǎn)義

替換可使用正則表達(dá)式的子模式,即小括號(hào)(),可以\1、\2代表子模式

【例】sed -r 's/(.)(.)/\2\1/ file1 表示將匹配到的第一部分和第二部分替換

*貪婪選項(xiàng):填上g,代表把一行中所有匹配項(xiàng)替換

3、awk 文本分析工具

由命令、正則(需要用//包圍起來(lái))、比較和關(guān)系運(yùn)算組合而成

使用option中的-F參數(shù)定義間隔符號(hào)

用$1,$2,$3等的順序表示files中每行以間隔符號(hào)分隔的各列不同域,NF變量表示當(dāng)前記錄的字段數(shù)

語(yǔ)法

awk -選項(xiàng) 參數(shù)  '邏輯判斷{命令 變量1,變量2,變量3}' 文件名

選項(xiàng)

-F 定義字段分隔符,默認(rèn)的分隔符是連續(xù)的空格或制表符
-v 定義變量并賦值 也可以借用次方式從shell變量中引入

AWK變量

NR 當(dāng)前記錄的個(gè)數(shù)(全部文件連接后的統(tǒng)計(jì))
FNR 當(dāng)前記錄的個(gè)數(shù)(僅為當(dāng)前文件的統(tǒng)計(jì),非全部)
FS 字段分隔符 默認(rèn)為連續(xù)空格或制表符,可以使用多個(gè)不同的符號(hào)做分隔符 -F[:/]
OFS 輸出字符的分隔符 默認(rèn)是空格
# awk -F: 'OFS="=====" {print $1,$2}' /etc/passwd
root=====x
NF 當(dāng)前讀入行的字段個(gè)數(shù)
ORS 輸出記錄分隔符 默認(rèn)是換行
# awk -F: 'ORS="=====" {print $1,$2}' /etc/passwd
root x=====bin x=====
FILENAME 當(dāng)前文件名

【例1】使用AWK變量

# awk '{print NR,FNR,$1}' file1 file2 
1 1 aaaaa
2 2 bbbbb
3 3 ccccc
4 1 dddddd
5 2 eeeeee
6 3 ffffff
#

【例2】引用shell變量的方法

# a=root
# awk -v var=$a -F: '$1 == var {print $0}' /etc/passwd
或者 把整個(gè)命令拆開傳遞,讓shell變量外露,
# awk -F: '$1 == "'$a'" {print $0}' /etc/passwd
# a=NF
# awk -F: '{print $'$a'}' /etc/passwd

邏輯運(yùn)算(可直接引用域進(jìn)行運(yùn)算)

= += -= /= *= 賦值

&& || ! 邏輯與 邏輯或 邏輯非

~ !~  匹配正則或不匹配,正則需要用 /正則/ 包圍住
< <= > >= != ==  關(guān)系 比較字符串時(shí)要把字符串用雙引號(hào)引起來(lái)

$ 字段引用:字段引用需要加$,而變量引用直接用變量名取

+ - * / % ++ --  運(yùn)算符

轉(zhuǎn)義序列

\\ \自身
\$ 轉(zhuǎn)義$
\t 制表符
\b 退格符
\r 回車符
\n 換行符
\c 取消換行

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“正則表達(dá)式及Linux三大文本處理工具是什么”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

網(wǎng)頁(yè)標(biāo)題:正則表達(dá)式及Linux三大文本處理工具是什么-創(chuàng)新互聯(lián)
當(dāng)前鏈接:http://www.rwnh.cn/article26/cephcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、標(biāo)簽優(yōu)化、服務(wù)器托管、企業(yè)網(wǎng)站制作、移動(dòng)網(wǎng)站建設(shè)、定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
祥云县| 临沭县| 凤台县| 蚌埠市| 黄平县| 土默特左旗| 咸阳市| 嵊州市| 航空| 易门县| 淮安市| 孟津县| 宁强县| 封开县| 华阴市| 历史| 即墨市| 化德县| 太白县| 南木林县| 毕节市| 沙雅县| 奉节县| 中宁县| 安西县| 奇台县| 即墨市| 宁蒗| 长垣县| 丹巴县| 宁陵县| 吉木萨尔县| 浦城县| 兴义市| 洪洞县| 肇州县| 额济纳旗| 林口县| 连山| 彰化市| 札达县|