国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux系統(tǒng)三劍客之grep和正則表達(dá)式的介紹(一)

這篇具有很好參考價值的文章主要介紹了Linux系統(tǒng)三劍客之grep和正則表達(dá)式的介紹(一)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1.正則表達(dá)式

目錄

1.正則表達(dá)式

1.什么是正則表達(dá)式 ?

2.正則表達(dá)式的使用場景

3.正則表達(dá)式字符表示

4.它們之間的區(qū)別

2.grep命令

作用:

語法:

說明:

選項(xiàng):options

重點(diǎn)

實(shí)例

3.后面的下次再更新。?


1.什么是正則表達(dá)式 ?

一個正則表達(dá)式就是描述了一個字符串集合的方式。正則表達(dá)式的表示就是一些特殊符號的組合,而每個符號代表著一些具體的意思。符合的組合就定義了一套規(guī)則和方法,其主要作用就是從大量文本從匹配出符合條件行。

2.正則表達(dá)式的使用場景

在Linux中,正則表達(dá)式的主要使用場景就是文本處理三劍客。grep,sed,awk .除此之外,vi指令也支持正則表達(dá)式。

3.正則表達(dá)式字符表示

在正則表達(dá)式中,又可以分為基本正則表達(dá)式和擴(kuò)展正則表達(dá)式 。其主要區(qū)別在于:

  • 基本正則表達(dá)式只認(rèn)識元字符,其元字符主要包括:^ $ . [] * ,具體含義見下表格

  • 擴(kuò)展正則表達(dá)式有添加了() {} ? + | 等符號

以下為各個元字符的含義

元字符 含義 實(shí)例
^ 匹配行首 ^abc : 匹配以abc開頭的字符
$ 匹配行尾 abc$ : 匹配以abc結(jié)尾的字符
^$ 空行 表示空行的意思
. 匹配任意單個字符 .a : 匹配任意和a結(jié)合的兩個字符,其中必須是在后面
* 字符* 匹配0或多個此字符 *.a : 匹配任意個一個或多個含有a的字符
.* 代表任意多個字符 就是代表任意多個字符
\ 屏蔽一個元字符的特殊含義 表示去掉有意義的元字符的含義
[] 匹配中括號內(nèi)的字符 [abc] : 代表匹配a或b或c
[^abc] 匹配不包含括號內(nèi)的任意字符 [^abc] : 代表對abc的取反 ,這個^abc意義不同。

擴(kuò)展正則中支持的字符

字符 含義 實(shí)例
+ 重復(fù)前一個字符一次或多次 a+ : 匹配包含一個a或多個a的字符 。
? 重復(fù)前面一個字符0次或一次 a? :匹配包含0個或一個a字符
| 同時匹配|兩邊的字符 "abc\|bcd" : 匹配包含abc或bcd的字符
() 可以和()的字符分組匹配 abc (d\|e\|f)” :匹配abcd,abce,abcf字符
{} 匹配前面字符的次數(shù)
{n} abc{2}” : 至少匹配abc兩次
{n,m} abc{2,5}” : 匹配abc兩到五次

預(yù)定義字符類

正則表達(dá)式 描述 示例
[:alnum:] [a-zA-Z0-9]匹配任意一個字母或數(shù)字字符 [[:alnum:]]+
[:alpha:] 匹配任意一個字母字符(包括大小寫字母) [[:alpha:]]
[:blank:] 空格與制表符(橫向縱向) [[:blank:]]
[:digit:] 匹配任意一個數(shù)字字符 [[:digit:]]+
[:lower:] 匹配小寫字母 [[:lower:]]
[:upper:] 匹配大寫字母 [[:upper:]]
[:punct:] 匹配標(biāo)點(diǎn)符號 [[:punct:]]
[:space:] 匹配一個包括換行符,回車等在內(nèi)的所有空白符 [[:space:]]+
[:graph:] 匹配任何一個可以看得見的且可以打印的字符 [[:graph:]]
[:xdigit:] 任何一個十六進(jìn)制數(shù) [[:xdigit:]]+
[:cntrl:] 任何一個控制字符(ASCII字符集中的前32個字符) [[:cntrl:]]
[:print:] 任何一個可以打印的字符 [[:print:]]
4.它們之間的區(qū)別

在上面我們提到正則包括基礎(chǔ)正則和擴(kuò)展正則,但是它們有什么區(qū)別呢?在什么地方使用呢 ? 接下來我們主要說明在Linux 三劍客中的不同(grep,sed,awk)

  • grep : 在grep中,如果只是使用grep ,那只能使用原字符的正則以及預(yù)定義字符類,而若想使用擴(kuò)展正則中包含的字符,就必須在grep后加參數(shù)-E 。

  • sed :若要使用而擴(kuò)展正則中包含的字符,就必須在sed后加參數(shù)-r。

2.grep命令

作用
  • 用于打印匹配給定模式的行

語法:

grep [options] PATTERN [FILE...] ? grep [options] [-e PATTERN | -f FILE] [FILE...]

說明:

grep指令用于搜索所給定的模式(PATTERN )的FILE 文件里的內(nèi)容 ,如果從文件內(nèi)容里找到了該模式的文件內(nèi)容,grep會把匹配的該行顯示出來。若不指定任何文件,或給的文件名為- , 則grep會從標(biāo)準(zhǔn)輸入讀取內(nèi)容。

?另外,也可以使用兩個變種程序 egrep 和 fgrep 。 Egrep 與 grep -E 相同。 Fgrep 與 grep -F 相同。

選項(xiàng):options
說明: 以下的NUM代表的是一個數(shù)字,代表的是行數(shù)
-A NUM 或者 --after-context=NUM
除了顯示符合條件的那一行之外,并顯示該行之后NUM行的內(nèi)容
-a 或者--text
將一個二進(jìn)制文件視為一個文本文件來處理;它與--binary-files=text 選項(xiàng)等價。

-B NUM 或者--before-context=NUM
除了顯示符合條件的那一行之外,并顯示該行之前NUM行的內(nèi)容。

-C NUM 或者--context=NUM
除了顯示符合條件的那一行之外,并顯示該行之前和之后的NUM行的內(nèi)容

-b 或者--byte-offset
在輸出的每行前面同時打印出當(dāng)前行在輸入文件中的字節(jié)偏移量。

--colour[=WHEN] 或者 --color[=WHEN]
在匹配的行中,已匹配到字符串進(jìn)行著色顯示。WHEN可以是never,always,或是auto。

-c 或者--count
計(jì)算符合條件的行數(shù)

-d ACTION 或者 --directories=ACTION
如果輸入文件是一個目錄,使用動作ACTION來處理它。
默認(rèn)情況下,動作ACTION是read,意味著目錄將視為普通文件那樣來讀。
如果動作 ACTION是skip ,將不處理而直接跳過目錄。
如果動作ACTION是recurse,grep 將遞歸地讀每一目錄下的所有文件。這樣做和-r選項(xiàng)等價。

-E 或者 --extended-regexp
將E后面的模式作為一個正則表達(dá)式來使用。

-e PATTERN 或者 --regexp=PATTERN
使用PATTERN作為查找文件內(nèi)容的模式(支持正則),但是在單條命令中可使用多個-e選項(xiàng)

-F 或者 --fixed-strings
將模式 PATTERN 視為一個固定的字符串的列表,用新行 (newlines) 分隔,只要匹配其中之一即可。

-f FILE 或者--file=FILE
從文件 FILE 中獲取模式,每行一個??瘴募?個模式,因此不匹配任何東西。

-G 或者--basic-regexp
將模式 PATTERN 作為一個基本的正則表達(dá)式這是默認(rèn)值。

-H 或者 --with-filename
為每個匹配打印文件名。

-h 或者 --no-filename
當(dāng)搜索多個文件時,禁止在輸出的前面加上文件名前綴。

-i 或者 --ignore-case
忽略大小寫的區(qū)別

-L 或者 --files-without-match
打印在文件內(nèi)容中無法找到匹配后的文件名稱

-l 或者 --files-with-matches
打印出在文件內(nèi)容中找到匹配后的文件名

-m NUM 或者 --max-count=NUM
在找到NUM個匹配的行之后,不再讀這個文件。

-n 或者 --line-number
在輸出的每行前面加上它所在的文件中它的行號。

-o 或者 --only-matching
只顯示匹配的行中與 PATTERN 相匹配的部分。

--label=LABEL
將來自標(biāo)準(zhǔn)輸入的匹配輸出視為來自輸入文件LABEL的值

--line-buffering
使用行緩沖,it can be a performance penality.

-q, --quiet, --silent
不顯示任何信息。

-R, -r, --recursive
遞歸地讀每一目錄下的所有文件。這樣做和 -d recurse選項(xiàng)等價。

--include=PATTERN
僅僅在搜索匹配 PATTERN 的文件時在目錄中遞歸搜索。

--exclude=PATTERN
在目錄中遞歸搜索,但是跳過匹配 PATTERN 的文件。

-s 或者 --no-messages
禁止輸出關(guān)于文件不存在或不可讀的錯誤信息。

-u 或者 --unix-byte-offsets
報(bào)告Unix風(fēng)格的字節(jié)偏移量。這個開關(guān)使得grep報(bào)告字節(jié)偏移量時,將文件作為Unix
風(fēng)格的文本文件看待,也就是說將CR字符去掉。這將產(chǎn)生與在一臺Unix主機(jī)上運(yùn)行g(shù)rep完全相同的結(jié)果。除非同時使用-b選項(xiàng),否則這個選項(xiàng)無效。這個選項(xiàng)在MS-DOS和MS-Windows之外的系統(tǒng)中無效。

-V 或者 --version
向標(biāo)準(zhǔn)錯誤輸出打印 grep 的版本號。

-v 或者 invert-match
顯示不包含匹配模式的所有行。

-w 或者 --word-regexp
只選擇含有能組成完整的詞的匹配的行。判斷方法是匹配的子字符串必須是一行的開始,或者是在一個不可能

-x 或者 --line-regexp
完全匹配。

-Z, --null
文件內(nèi)容全部顯示,不同字體通過顏色加以標(biāo)注
重點(diǎn)

雖然在上面我們可以看到,grep中有很多選項(xiàng),但是在工作中,大多數(shù)的選項(xiàng)是用不到的,這里我們劃一下重點(diǎn)。

常用參數(shù)

-E 將后面的模式作為一個正則表達(dá)式(擴(kuò)展正則)
-e 支持一個命令中多個正則匹配
-i 忽略大小寫
-n 在匹配的行前加入編號
-v 只顯示不匹配的行
實(shí)例

使用到文件info,通過grep來進(jìn)行過濾,info的文件內(nèi)容如下:

Linux系統(tǒng)三劍客之grep和正則表達(dá)式的介紹(一),Linux操作系統(tǒng),接口測試,功能測試,服務(wù)器,linux,功能測試,正則表達(dá)式

  1. 查找文件info中包含ccc的內(nèi)容并打印行數(shù)

grep -n "ccc" info

Linux系統(tǒng)三劍客之grep和正則表達(dá)式的介紹(一),Linux操作系統(tǒng),接口測試,功能測試,服務(wù)器,linux,功能測試,正則表達(dá)式

2.查找文件info中包含ggg且忽略大小寫的字符并打印,

grep -i "ggg" info

Linux系統(tǒng)三劍客之grep和正則表達(dá)式的介紹(一),Linux操作系統(tǒng),接口測試,功能測試,服務(wù)器,linux,功能測試,正則表達(dá)式

3.過濾掉含有ccc的行

grep -v "ccc" info

?Linux系統(tǒng)三劍客之grep和正則表達(dá)式的介紹(一),Linux操作系統(tǒng),接口測試,功能測試,服務(wù)器,linux,功能測試,正則表達(dá)式

4.查找包含ddd,eee,fff的行(注意:以下匹配用到正則)

grep -E "ddd|eee|fff" info

Linux系統(tǒng)三劍客之grep和正則表達(dá)式的介紹(一),Linux操作系統(tǒng),接口測試,功能測試,服務(wù)器,linux,功能測試,正則表達(dá)式

5.查找以c開頭的行

grep ^c info

Linux系統(tǒng)三劍客之grep和正則表達(dá)式的介紹(一),Linux操作系統(tǒng),接口測試,功能測試,服務(wù)器,linux,功能測試,正則表達(dá)式

6.查找以ccx開頭且結(jié)尾的行

grep ^ccx$ info

Linux系統(tǒng)三劍客之grep和正則表達(dá)式的介紹(一),Linux操作系統(tǒng),接口測試,功能測試,服務(wù)器,linux,功能測試,正則表達(dá)式

7.查找d字符前可以是任意字符的行

grep .d info

Linux系統(tǒng)三劍客之grep和正則表達(dá)式的介紹(一),Linux操作系統(tǒng),接口測試,功能測試,服務(wù)器,linux,功能測試,正則表達(dá)式

8.查找包含一個或多個d字符的行

grep -E d{1} info

Linux系統(tǒng)三劍客之grep和正則表達(dá)式的介紹(一),Linux操作系統(tǒng),接口測試,功能測試,服務(wù)器,linux,功能測試,正則表達(dá)式

9.顯示包含a,b,c的字符的行 ; 顯示不包含a,b,c字符的行

包含:grep -i ^[abc] info
不包含: grep -i [^abc] info (是全部字符不包含a或b或c)

Linux系統(tǒng)三劍客之grep和正則表達(dá)式的介紹(一),Linux操作系統(tǒng),接口測試,功能測試,服務(wù)器,linux,功能測試,正則表達(dá)式

10.顯示包含一個或多個含有a字符的行

grep -E a+ info

Linux系統(tǒng)三劍客之grep和正則表達(dá)式的介紹(一),Linux操作系統(tǒng),接口測試,功能測試,服務(wù)器,linux,功能測試,正則表達(dá)式

11.查找以cc開頭且包含c,x,ld字符的行

grep -E "cc(c|x|ld)" info

Linux系統(tǒng)三劍客之grep和正則表達(dá)式的介紹(一),Linux操作系統(tǒng),接口測試,功能測試,服務(wù)器,linux,功能測試,正則表達(dá)式

12.查找文件中所有的大寫字符

grep [[:upper:]] info

Linux系統(tǒng)三劍客之grep和正則表達(dá)式的介紹(一),Linux操作系統(tǒng),接口測試,功能測試,服務(wù)器,linux,功能測試,正則表達(dá)式

13.匹配任意一個字母和數(shù)字字符

grep [[:alnum:]] info

?Linux系統(tǒng)三劍客之grep和正則表達(dá)式的介紹(一),Linux操作系統(tǒng),接口測試,功能測試,服務(wù)器,linux,功能測試,正則表達(dá)式文章來源地址http://www.zghlxwxcb.cn/news/detail-801490.html

到了這里,關(guān)于Linux系統(tǒng)三劍客之grep和正則表達(dá)式的介紹(一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 正則表達(dá)式和文本三劍客題型練習(xí)

    正則表達(dá)式和文本三劍客題型練習(xí)

    ? 1、顯示/etc/passwd文件中以bash結(jié)尾的行; 解釋:使用 grep 工具來搜索文件 /etc/passwd 中匹配模式 \\\'bash$\\\' 的行。 bash$ 是一個正則表達(dá)式,其中 $ 表示行結(jié)尾。因此, \\\'bash$\\\' 匹配以 bash 結(jié)尾的行。 運(yùn)行結(jié)果: ? 2、找出\\\"netstat ?-tan”命令的結(jié)果中,以‘LISTEN’后跟0或多個空白字

    2024年02月06日
    瀏覽(20)
  • linux文本三劍客---grep,sed,awk

    linux文本三劍客---grep,sed,awk

    目錄 grep 什么是grep? grep實(shí)例演示 命令參數(shù): 案例演示: sed 概念: ?常用選項(xiàng): 案例演示: awk 概念: awk常用命令選項(xiàng): awk變量: 內(nèi)置變量 自定義變量 awk的簡單案例 在“a b c d”的d后面插入三個字符 統(tǒng)計(jì)tcp連接狀態(tài)數(shù)量 ?統(tǒng)計(jì)日志中狀態(tài)碼非200的IP的次數(shù) 什么是grep?

    2024年02月13日
    瀏覽(93)
  • Linux文本三劍客(grep、sed、awk)

    Linux文本三劍客(grep、sed、awk)

    目錄 grep 1、什么是grep和rgrep? 2、使用grep 2.1、命令格式 2.2、命令功能 2.3、命令參數(shù) 3、實(shí)戰(zhàn)演示 sed 1、認(rèn)識sed 2、使用sed 2.1、命令格式 2.2、常用選項(xiàng)options 2.3、地址定界 2.4、編輯命令command 3、sed用法演示 3.1、常用選項(xiàng)用法演示 3.2、sed地址定界演示 3.3、編輯命令command演示

    2024年02月03日
    瀏覽(98)
  • linux命令三劍客grep、sed、awk

    準(zhǔn)備 grep、sed、awk號稱\\\"linux三劍客\\\",使用頻繁,功能強(qiáng)大,本文通過一個實(shí)例演示下基本用法。首先準(zhǔn)備一個文本文件,命名為text.txt,寫入文件內(nèi)容: grep 首先,最簡單的是grep。經(jīng)常用來過濾查看日志。對于grep需要知道如下幾個常用的命令選項(xiàng): -n: 額外輸出行號。例如過

    2024年02月05日
    瀏覽(99)
  • Linux文本三劍客---grep、sed、awk

    Linux文本三劍客---grep、sed、awk

    awk、grep、sed是linux操作文本的三大利器,三者的功能都是處理文本,但側(cè)重點(diǎn)各不相同,其中屬awk功能最強(qiáng)大,但也最復(fù)雜。grep更適合單純的查找或匹配文本,sed更適合編輯匹配到的文本,awk更適合格式化文本,對文本進(jìn)行較復(fù)雜格式處理。 1、grep 1.1 命令格式 1.2命令功能

    2024年02月14日
    瀏覽(97)
  • Linux三劍客——Linux grep命令詳解:查找文件內(nèi)容

    很多時候,我們并不需要列出文件的全部內(nèi)容,而是從文件中找到包含指定信息的那些行,要實(shí)現(xiàn)這個目的,可以使用?grep 命令。 grep 命令 作為 Linux 文本處理三劍客的一員,另外兩個是 sed 和 awk ,我們會在后面的文章中作詳細(xì)介紹。 grep 命令 的由來可以追溯到 UNIX 誕生的

    2024年02月11日
    瀏覽(84)
  • Linux 文本處理三劍客:grep、sed 和 awk

    awk、grep、sed是linux操作文本的三大利器,合稱文本三劍客,也是必須掌握的linux命令之一。三者的功能都是處理文本,但側(cè)重點(diǎn)各不相同,其中屬awk功能最強(qiáng)大,但也最復(fù)雜。grep更適合單純的查找或匹配文本,sed更適合編輯匹配到的文本,awk更適合格式化文本,對文本進(jìn)行較

    2024年01月17日
    瀏覽(97)
  • Linux中字符處理三劍客(grep sed awk )

    在 Linux 系統(tǒng)中,字符處理流程可以利用三個常用的工具來完成,三劍客的具體說明如下: grep:grep 是一種強(qiáng)大的文本搜索工具,可以搜索文件內(nèi)容中包含指定文本的行,并打印出包含該文本的行。grep 命令通常用于搜索日志文件、配置文件等。 在Linux中,\\\"grep\\\"是一種文本搜索

    2024年02月08日
    瀏覽(117)
  • Linux三劍客grep、sed、awk(包括練習(xí)題)

    Linux grep (global regular expression) 命令用于查找文件里符合條件的字符串或正則表達(dá)式。 基本用法與常見的正則表達(dá)式 擴(kuò)展正則表達(dá)式實(shí)踐 此處使用grep -E 進(jìn)行實(shí)踐擴(kuò)展正則,egrep官網(wǎng)已經(jīng)棄用 注意:sed和awk使用單引號,雙引號有特殊解釋 sed是Stream Editor(字符流編輯器)的縮寫

    2024年02月11日
    瀏覽(92)
  • Linux:管道命令與文本處理三劍客(grep、sed、awk)

    Linux:管道命令與文本處理三劍客(grep、sed、awk)

    眾所周知,bash命令執(zhí)行的時候會輸出信息,但有時這些信息必須要經(jīng)過幾次處理之后才能得到我們想要的格式,此時應(yīng)該如何處置?這就牽涉到 管道命令(pipe) 了。管道命令使用的是 | 這個界定符號。另外,管道命令與連續(xù)執(zhí)行命令是不一樣的,這點(diǎn)下面我們會說明。 我們先

    2023年04月18日
    瀏覽(36)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包