欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

linux命令行正則 linux正則表達(dá)式匹配字符串

Linux正則表達(dá)式

一.linux文本查找命令

創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)營(yíng)銷推廣、網(wǎng)站重做改版、盤錦網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5開發(fā)電子商務(wù)商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為盤錦等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

在說linux正規(guī)表達(dá)式之前,還介紹下linux中查找文本文件常用的三個(gè)命令:

1.grep : 最早的文本匹配程序,使用POSIX定義的基本正則表達(dá)式(BRE)來匹配文本。

2.egrep : 擴(kuò)展式grep,其使用擴(kuò)展式正規(guī)表達(dá)式(ERE)來匹配文本。

3.fgrep : 快速grep,這個(gè)版本匹配固定字符串而非正則表達(dá)式。并且是唯一可以并行匹配多個(gè)字符串的版本。

如下簡(jiǎn)單的介紹grep命令:

語(yǔ)法格式:

grep [options ...] pattern-spec [files ...]

用途:

匹配一個(gè)或多個(gè)模式的文本行。

options:

-E : 使用擴(kuò)展正則表達(dá)式進(jìn)行匹配, grep -E 或取代 egrep 命令。

-F : 使用固定字符串進(jìn)行匹配, grep -F 或取代傳統(tǒng)的fgrep命令。

-e : 通常第一個(gè)非選項(xiàng)的參數(shù)認(rèn)為是要匹配的模式,也可以同時(shí)提供多個(gè)模式,只要將其放入單引號(hào),并用換行字符分隔他們。

模式以減號(hào)開頭時(shí),為防止混淆其為選項(xiàng),-e選項(xiàng)說明其后的參數(shù)為模式,即使他以減號(hào)開頭。

-f : 從pat-file文件讀取模式作為匹配。

-i : 模式匹配時(shí)忽略大小寫差異。

-l : 列出匹配模式的文件名稱,而不是打印匹配的行。

-q : 靜默的,如果匹配成功,不將匹配的行輸出到標(biāo)準(zhǔn)輸出;否則即是不成功。

-s : 不顯示錯(cuò)誤信息,通常與-q并用。

-v : 顯示不匹配模式的行。

說明:可以同時(shí)查找多個(gè)文件中的內(nèi)容,當(dāng)指定多個(gè)文件時(shí),每個(gè)顯示出的文件行前會(huì)有文件名加一個(gè)冒號(hào)標(biāo)識(shí)其來自哪個(gè)文件。

可以使用多個(gè)-e 或 -f 選項(xiàng),建立要查找的模式列表。

二.正則表達(dá)式簡(jiǎn)要介紹

1.正則表達(dá)式的組成

(1).一般字符:沒有特殊意義的字符

(2).特殊字符(meta字符):元字符,有在正則表達(dá)式中有特殊意義

2.如下講下正則表達(dá)式中的常見meta字符

(1).POSIX BRE與ERE中都有的meta字符:

\?? :??通常用于打開或關(guān)閉后續(xù)字符的特殊含義,如\(...\)與\{...\}

.? ?:?? 匹配任何單個(gè)字符(除NUL)

*? :?? 匹配其前的任何數(shù)目或沒有的單個(gè)字符,例:?.?表示任一字符, 則 .* 匹配任一字符的任意長(zhǎng)度

^? :?? 匹配緊接著的正則表達(dá)式,BRE中僅在正則表達(dá)式的開頭有特殊的含義,ERE中在任何位置都有特殊含義

$? :?? 匹配前面的正則表達(dá)式,在字符串或者行結(jié)尾處。BRE中僅在正則表達(dá)式的結(jié)尾處有特殊的含義,ERE中在任何位置都有特殊含義

[]? :?? 匹配方括號(hào)內(nèi)的任一字符,其中可用連字符(-)指的連續(xù)字符的范圍;^符號(hào)苦出現(xiàn)在方括號(hào)的第一個(gè)位置,則表示匹配不在列表中的任一字符,

(2).POSIX BRE中才有的字符:

\{n,m\} : 區(qū)間表達(dá)式,匹配在它前面的單個(gè)字符重現(xiàn)的次數(shù)區(qū)別。\{n\}指重現(xiàn)n次;\{n,m\}指重現(xiàn)n至m次;

\( \) : 保留空間,可以將最多9個(gè)獨(dú)立的子模式存儲(chǔ)在單個(gè)模式中。如\(ab\).*\1 : 指匹配ab組合的兩次重現(xiàn),中間可存在任意數(shù)目的字符。

\n : 重復(fù)在\(與\)方括號(hào)內(nèi)第n個(gè)子模式至此點(diǎn)的模式。

(3).POSIX ERE中才有的字符:

{n,m} : 與BRE的\{n,m\}功能相同

+ : 匹配前面正則表達(dá)式的一個(gè)或多個(gè)擴(kuò)展

? : 匹配前面正則表達(dá)式的零個(gè)或一個(gè)擴(kuò)展

| : 匹配|符號(hào)前或后的正則表達(dá)式

( ) : 匹配方括號(hào)括起來的正則表達(dá)式群

(4).?方括號(hào)([])表達(dá)式

4.1.字符集? [:? :]

標(biāo)識(shí)字符集,有如下幾種:

[::alnum] : 數(shù)字字符[:digit:] : 數(shù)字字符[:punct:] : 標(biāo)點(diǎn)符號(hào)字符

[:alpha:] : 字母字符[:graph:] : 非空格字符[:space:] :?空格字符

[:blank:] : 空格與定位字符[:lower:] : 小寫字母字符[:upper:] : 大寫字母字符

[:cntrl:] : 控制字符[:print:] : 可顯示的字符[:xdigit:] : 16進(jìn)制數(shù)字

4.2.排序符號(hào)

指將多個(gè)字符視為一個(gè)符號(hào),如[.ch.]即將ch視為一個(gè)符號(hào)

4.3.等價(jià)字符

認(rèn)為多個(gè)字符相等,如[=e=]在法文的locale里,可匹配于多種與e相似的字符,此處不再列出。

說明:這三種構(gòu)造除其自身的方括號(hào)之外,還必須使用額外的方括號(hào)括起來。

例 : [[:alpha:]!] : 匹配任一英文字母或感嘆號(hào)。

[[.ch.] : 匹配ch排序元素,而不匹配單獨(dú)的字母c或h.

3.簡(jiǎn)單正規(guī)表達(dá)式匹配案例

china? :?匹配此行中任意位置有china字符的行

^china?: 匹配此以china開關(guān)的行

china$ : 匹配以china結(jié)尾的行

^china$ : 匹配僅有china五個(gè)字符的行

[Cc]hina : 匹配含有China或china的行

Ch.na : 匹配包含Ch兩字母并且其后緊跟一個(gè)任意字符之后又有na兩個(gè)字符的行

Ch.*na : 匹配一行中含Ch字符,并且其后跟0個(gè)或者多個(gè)字符,再繼續(xù)跟na兩字符

二.實(shí)例

如下通過常用實(shí)例來學(xué)習(xí)BRE和ERE匹配,源文件url.txt內(nèi)容如下:

baidu.com

baidu

1.url匹配

匹配以http或者h(yuǎn)ttps開頭,并且其后為:并且含有.的串

BRE匹配:

grep '^https\{0,1\}.*\..*' url.txt

ERE匹配:

grep -E?'^https?.*\..*' url.txt

匹配結(jié)果如下:

2.Email匹配

示例文件內(nèi)容為:

hfutwyy@qq.com

aaaa@

aaa@.com

aaa@gmail.com

@@baidu.com

匹配以字母數(shù)字或者下劃線開頭的多個(gè)字符,其后有一個(gè)@之后有多個(gè)字母數(shù)字或者下劃線,其中有一個(gè).號(hào)

grep '^[[:alpha:][:digit:]_]*@[[:alpha:][:digit:]]*\..*' email.txt

匹配結(jié)果:

hfutwyy@qq.com

aaa@.com

aaa@gmail.com

轉(zhuǎn)自 嘉為教育-rhce認(rèn)證_rhce培訓(xùn)_linux培訓(xùn)_linux認(rèn)證_linux考證

Linux||正則表達(dá)式及grep命令

以下內(nèi)容首發(fā)自公眾號(hào)“小汪Waud”。

本期介紹在Linux環(huán)境下的正則表達(dá)式及grep命令。

正則表達(dá)式(Regular Expression)是對(duì)字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符及這些字符的特定組合,組成一個(gè)“規(guī)則字符串”,這個(gè)字符串用來表達(dá)對(duì)字符串的一種過濾邏輯。

正則表達(dá)式基本上是一種表示法,只要程序支持這種表示法,該程序就可以用來作為正則表達(dá)式的字符串處理之用。如vi、grep、awk、sed等程序支持正則表達(dá)式,所以可以使用正則表達(dá)式的特殊字符來進(jìn)行字符串的處理。但例如cp、ls等命令并不支持正則表達(dá)式,所以只能用自己的通配符。

正則表達(dá)式依照 不同的嚴(yán)謹(jǐn)度 分為:基礎(chǔ)正則表達(dá)式和擴(kuò)展正則表達(dá)式。

注意!

grep是一種強(qiáng)大的文本搜索工具,可以使用 正則表達(dá)式匹配模式 查找文件里符合條件的字符串,并打印出來。

有點(diǎn)類似于WORD里的查找功能。

grep支持三種正則表達(dá)式語(yǔ)法:Basic、Extended和perl兼容。 如果沒有提供正則表達(dá)式類型,grep將搜索模式解釋為基本的正則表達(dá)式。要將模式解釋為擴(kuò)展正則表達(dá)式,請(qǐng)使用-E。

查看grep的幫助文檔,如下

基本用法

grep [OPTION]... PATTERN [FILE]...

高級(jí)用法

grep [-A] [-B] [--color=auto] "查找字符" [模式] [文件]

常用參數(shù)

首先通過cat命令查看samples.txt的內(nèi)容,如下圖

如果想檢索以K為行首的行,通過以下命令即可得到

如果想檢索以Z為行尾的行,通過以下命令即可得到

如果想檢索三個(gè)字符其中前面為K,后面為D中間字符,為任意字符,通過以下命令即可得到

參考資料

Linux正則表達(dá)式與通配符

正則表達(dá)式:在計(jì)算機(jī)科學(xué)中,是指一個(gè)用來描述或者匹配一系列符合某個(gè)句法規(guī)則的字符串的單個(gè)字符串。在很多文本編輯器或其他工具里,正則表達(dá)式通常被用來檢索或替換那些符合某個(gè)模式的文本內(nèi)容。正則表達(dá)式這個(gè)概念最初是由Unix中的工具軟件(例如sed和grep)普及開的。

只有掌握了正則表達(dá)式,才能全面地掌握 Linux 下的常用文本工具(例如:grep、egrep、GUN sed、 Awk 等) 的用法

grep、sed、awk天然支持正則

grep -v代表反選,反向選擇匹配到的內(nèi)容

grep -E代表使用擴(kuò)展正則

grep -P代表使用Perl正則

sed -r 代表使用擴(kuò)展正則

正則表達(dá)式分為三類(man grep可以看到,分別是basic RegExs,extended RegExs,perl RegExs)

1、基本的正則表達(dá)式(Basic Regular Expression 又叫 Basic RegEx 簡(jiǎn)稱 BREs)

2、擴(kuò)展的正則表達(dá)式(Extended Regular Expression 又叫 Extended RegEx 簡(jiǎn)稱 EREs)

3、Perl 的正則表達(dá)式(Perl Regular Expression 又叫 Perl RegEx 簡(jiǎn)稱 PREs)

b. 處理過程:查找文本文件中是否包含要查找的 “關(guān)鍵字”(關(guān)鍵字可以是正則表達(dá)式) ,默認(rèn)返回匹配的該行的內(nèi)容

c. grep|egrep處理文件時(shí),按行處理 |

| sed | sed | sed -r | - | a. 處理對(duì)象:文本文件

b.處理操作:對(duì)文本文件的內(nèi)容進(jìn)行 查找、替換、刪除、增加等操作

c. sed 在處理文本文件的時(shí)候,按行處理 |

| awk | - | awk | - | a. awk 處理的對(duì)象:文本文件

b. awk 處理操作:主要是對(duì)列進(jìn)行操作 |

注意:egrep 或 sed -r 默認(rèn)使用擴(kuò)展正則表達(dá)式(EREs),一般特殊字符({})可以不轉(zhuǎn)義

grep -E 以及egrep(Extend Regular Expression)

Linux通配符和三劍客的正則表達(dá)式是不一樣的,因此,代表的意義也有較大的區(qū)別 。

通配符一般用戶命令行bash環(huán)境,而linux正則表達(dá)式用于grep, sed, awk場(chǎng)景。

通配符說明

示例:* 的使用:代表任意0-N個(gè)字符,代表所有字符

網(wǎng)站名稱:linux命令行正則 linux正則表達(dá)式匹配字符串
網(wǎng)站鏈接:http://www.chinadenli.net/article8/dooiiip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)全網(wǎng)營(yíng)銷推廣移動(dòng)網(wǎng)站建設(shè)商城網(wǎng)站網(wǎng)站導(dǎo)航

廣告

聲明:本網(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í)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)