手机看片精品高清国产日韩,色先锋资源综合网,国产哺乳奶水91在线播放,乱伦小说亚洲色图欧洲电影

Linux-grep命令詳解

2023-04-27 22:17:11 3717

一、grep介紹

全拼:Global search REgular expression and Print out the line.

作用:文本搜索工具,根據用戶指定的“模式(過濾條件)”對目標文本逐行進行匹配檢查,打印匹配到的行.

模式:由正則表達式的元字符及文本字符所編寫出的過濾條件﹔

語法:

grep  [options]  [pattern]   file

命令   參數      匹配模式  文件數據

grep命令里的匹配模式就是你想要找的東西,可以是普通的文字符號,也可以是正則表達式

常見參數:

-i: ignorecase,忽略字符的大小寫

-v: 顯示不能被模式匹配到的行

-E: 支持使用擴展的正則表達式元字符(egrep)

-n:顯示匹配行的行號

-r:遞歸查找子目錄中的文件

-l:只打印匹配的文件名

-c:只打印匹配的行數

-H: 在顯示符合樣式的那一行之前,表示該行所屬的文件名稱

-s:無聲操作只顯示報錯,檢查退出狀態

-e:使用正則表達式

-w:精確匹配

-wc:精確匹配次數

-o:查詢所有匹配字段

-A3:打印匹配行和下三行

-B3:打印匹配行和上三行

-C3:打印匹配行和上下三行

二、grep實踐

先看一下這個測試文件的內容吧

image.png

2.1、輸出以r開頭的行(不區分大小寫)

image.png

: 這里的-i代表不區分大小寫, -n代表顯示匹配行和行號

2.2、輸出以.結尾的行
image.png

: 因為.在這里有著特殊含義, 所以要用\轉義一下, 如果不加轉義字符的話, grep就會把它當做正則表達式來處理(.代表的含義是匹配任意一個字符)

2.3、$符號

Linux系統中, 所有文件的結尾都有一個$符

可以利用cat -A 查看文件

image.png

2.4、^$(代表空行的意思)組合符

找出文件的空行, 以及行號

image.png

2.5、.點符號

"."點表示任意一個字符, 有且只有一個, 不包含空行
image.png

2.6、*符號

"*"表示找出前一個字符0次或一次以上

找出文件中r出現0次或多次的行和行號

image.png

2.7、.*組合符

".*"表示所有內容, 包括空行

image.png

2.8、^.*t符 (含義: 以任意內容開頭, 直到t結束)

image.png

2.9、[abc]中括號

中括號表達式,[abc]表示匹配中括號中任意一個字符, a或b或c,常見的形式如下;

[a-z]匹配所有小寫單個字母[A-Z]匹配所有單個大寫字母

[a-zA-Z]匹配所有的單個大小寫字母

[0-9]匹配所有單個數字

[a-zA-ZO-9]匹配所有數字和字母

匹配rt字符中的任意一個,得到它的行數和行號

image.png

2.10、[^abc]中括號中去反

[^abc]或[^a-c]這樣的命令, "^"符號在中括號中第一位表示排除, 就是排除字符a,b,c

: 出現再中括號里的尖角號表示取反

image.png

三、擴展正則grep實踐

使用grep -E進行實踐擴展正則, egrep官網已經棄用了

3.1、+號

+號表示匹配前一個字符1一次或多次,必須使用grep-E擴展正則

image.png

3.2、?符

匹配前一個字符0次或1次

找出文件中包含rt或者rot的行

image.png

3.3、|符

豎線|再正則中是或者的意思

找出端口號為80的進程名


image.png

3.4、()小括號

將一個或多個字符捆綁在一起, 當作一個整體進行處理

image.png

3.5、{n,m}匹配次數

{n,m}:匹配前一個字符至少n次, 最多m次

{n,}: 匹配前一個字符至少n次, 沒有上限

{,m}: 匹配前一個字符最多m次,可以沒有

重復前一個字符各種次數, 可以通過-o參數顯示明確的匹配過程
image.png


提交成功!非常感謝您的反饋,我們會繼續努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務,我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: