中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

linux中強大的文本搜索工具-grep命令

發布時間:2020-07-07 11:12:20 來源:億速云 閱讀:187 作者:小新 欄目:服務器

今天小編給大家分享的是linux中強大的文本搜索工具-grep命令,相信很多人都不太了解,為了讓大家更加了解,所以給大家總結了以下內容,一起往下看吧。一定會有所收獲的哦。

grep是“global search regular expression and print out the line”的簡稱,意思是全面搜索正則表達式,并將其打印出來。這個命令可以結合正則表達式使用,它也是linux使用最為廣泛的命令。

grep命令的選項用于對搜索過程的補充,而其命令的模式十分靈活,可以是變量、字符串、正則表達式。需要注意的是:一當模式中包含了空格,務必要用雙引號將其引起來。

linux系統支持三種形式的grep命令,大兒子就是grep,標準,模仿的代表。二兒子興趣愛好多-egrep,簡稱擴展grep命令,其實和grep -E等價,支持基本和擴展的正則表達式。小兒子跑的最快-fgrep,簡稱快速grep命令,其實和grep -F等價,不支持正則表達式,按照字符串表面意思進行匹配。

語法格式: grep [參數]

常用參數:

-i搜索時,忽略大小寫
-c只輸出匹配行的數量
-l只列出符合匹配的文件名,不列出具體的匹配行
-n列出所有的匹配行,顯示行號
-h查詢多文件時不顯示文件名
-s不顯示不存在、沒有匹配文本的錯誤信息
-v顯示不包含匹配文本的所有行
-w匹配整詞
-x匹配整行
-r遞歸搜索
-q禁止輸出任何結果,已退出狀態表示搜索是否成功
-b打印匹配行距文件頭部的偏移量,以字節為單位
-o與-b結合使用,打印匹配的詞據文件頭部的偏移量,以字節為單位

參考實例

支持多文件查詢并支持使用通配符:

[root@linuxcool ~]# grep zwx file_* /etc/hosts
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj
file_2:zwx
file_4:dkfjlzwxejfkje
file_4:zwx djfkdjf
file_4:zwxedkfgj

輸出匹配字符串行的數量:

[root@linuxcool ~]$ grep -c zwx file_*
file_1:2
file_2:1
file_3:0

列出所有的匹配行,并顯示行號:

[root@linuxcool ~]# grep -n zwx file_*
file_1:1:zwx
file_1:4:zwx
file_1:10:zwxddkjflkdjfdlkfjlsdkj
file_2:2:zwx
file_4:3:dkfjlzwxejfkje
file_4:4:zwx djfkdjf
file_4:5:zwxedkfgj

顯示不包含模式的所有行:

[root@linuxcool ~]# grep -vc zwx file_*
file_1:7
file_2:4
file_3:5
file_4:2

不再顯示文件名:

[root@linuxcool ~]# grep -h zwx file_*
zwx
zwx
zwxddkjflkdjfdlkfjlsdkj
zwx
dkfjlzwxejfkje
zwx djfkdjf
zwxedkfgj

只列出符合匹配的文件名,不列出具體匹配的行:

[root@linuxcool ~]# grep -l zwx file_*
file_1
file_2
file_4

不顯示不存在或無匹配的文本信息:

[root@linuxcool ~]# grep  -s zwx file1 file_1
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj
[root@linuxcool ~]# grep zwx file1 file_1
grep: file1: No such file or directory
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj

遞歸搜索,不僅搜索當前目錄,還搜索子目錄:

[root@linuxcool ~]# grep -r zwx file_2 *
file_2:zwx
anaconda-ks.cfg:user --name=zwx --gecos="zwx"
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj
file_2:zwx
file_4:dkfjlzwxejfkje
file_4:zwx djfkdjf
file_4:zwxedkfgj
initial-setup-ks.cfg:user --name=zwx --gecos="zwx"

匹配整詞,以字面意思去解釋他,相當于精確匹配:

[root@linuxcool ~]# grep zw* file_1
zwx
zwx
zdkfjeld
zw
ze
zwxddkjflkdjfdlkfjlsdkj
[root@linuxcool ~]# grep -w zw* file_1
zw

匹配整行,文件中的整行與模式匹配時,才打印出來:

[root@linuxcool ~]# grep -x zwx file_*
file_1:zwx
file_1:zwx
file_2:zwx

不輸出任何結果,已退出狀態表示結果:

 [root@linuxcool ~]# grep -q zwx file_1
[root@linuxcool ~]# echo $?
0
[root@linuxcool ~]# grep -q zwx file_5
[root@linuxcool ~]# echo $?
1
[root@linuxcool ~]# grep -q zwx file5
grep: file5: No such file or directory
[root@linuxcool ~]# echo $?
2

查找一個文件中的空行和非空行:

[root@linuxcool ~]# grep -c ^$ file_1
4
[root@linuxcool ~]# grep -c ^[^$] file_1
15

匹配任意或重復字符用“.”或“*”符號來實現:

[root@linuxcool ~]# grep ^z.x file_1
zwx
zwx
zwxddkjflkdjfdlkfjlsdkj
[root@linuxcool ~]# grep ^z* file_6
zwx
dfkjd

zzdfjkd
zz dfdww
haha

關于linux中強大的文本搜索工具-grep命令就分享到這里了,希望以上內容可以對大家有一定的參考價值,可以學以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

定边县| 太仆寺旗| 宜良县| 盐源县| 恩施市| 沙坪坝区| 新建县| 浑源县| 新乡县| 保山市| 青阳县| 仲巴县| 四子王旗| 滁州市| 文山县| 陇西县| 乌鲁木齐县| 惠来县| 宜州市| 西峡县| 南充市| 宝兴县| 乌鲁木齐县| 大名县| 大港区| 温宿县| 崇左市| 尚义县| 弥勒县| 南昌市| 潼关县| 霞浦县| 云南省| 绥棱县| 金川县| 天长市| 宁津县| 红安县| 甘泉县| 花垣县| 大名县|