總結(jié)
所有類似linux的系統(tǒng)都將提供一個名為grep(全局正則表達(dá)式打印)的搜索工具。Grep命令在基于模式搜索一個或多個文件的內(nèi)容時非常有用。模式可以是單個字符、多個字符、一個單詞或一個句子。
當(dāng)命令與執(zhí)行命令時指定的模式匹配時,grep輸出包含該模式的行,但不修改原始文件內(nèi)容。
在本文中,我們將詳細(xì)討論grep命令示例。
示例的詳細(xì)說明示例1在文件中搜索模式(單詞)
在/etc/passwd文件中查找單詞linuxtechi
root@Linux-world:~# grep linuxtechi /etc/passwd linuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/bash root@Linux-world:~# 例2 在多個文件中查找模式 root@Linux-world:~# grep linuxtechi /etc/passwd /etc/shadow /etc/gshadow /etc/passwd:linuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/bash /etc/shadow:linuxtechi:$6$DdgXjxlM$4flz4JRvefvKp0DG6re:16550:0:99999:7:::/etc/gshadow:adm:*::syslog,linuxtechi /etc/gshadow:cdrom:*::linuxtechi /etc/gshadow:sudo:*::linuxtechi /etc/gshadow:dip:*::linuxtechi /etc/gshadow:plugdev:*::linuxtechi /etc/gshadow:lpadmin:!::linuxtechi /etc/gshadow:linuxtechi:!:: /etc/gshadow:sambashare:!::linuxtechi 例3 使用 -l參數(shù)列出包含指定模式的文件的文件名 root@Linux-world:~# grep -l linuxtechi /etc/passwd /etc/shadow /etc/fstab /etc/mtab /etc/passwd /etc/shadow 例4 使用 -n參數(shù),在文件中查找指定模式并顯示匹配行的行號 root@Linux-world:~# grep -n linuxtechi /etc/passwd 39:linuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/bash 例5 使用 -v參數(shù)輸出不包含指定模式的行輸出/etc/passwd文件中不帶單詞“l(fā)inuxtechi”的所有行
root@Linux-world:~# grep -v linuxtechi /etc/passwd 例6 使用 ^符號輸出所有以某指定模式開頭的行Bash腳本將符號視為特殊字符,用于指定一行或一個單詞的開頭。例如,輸出/etc/passwd文件中以“root”開頭的所有行
root@Linux-world:~# grep ^root /etc/passwd root:x:0:0:root:/root:/bin/bash 例7 使用 $符號輸出所有以指定模式結(jié)尾的行輸出/etc/passwd文件中以bash結(jié)尾的所有行
root@Linux-world:~# grep bash$ /etc/passwd root:x:0:0:root:/root:/bin/bash linuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/bashBash腳本將美元符號視為一個特殊字符,用于指定一行或一個單詞的結(jié)尾。
示例8使用-r參數(shù)root @ Linux-world:~ # grep-r linuxctech I/etc//etc/sub uid:linuxctech I:100000:65536/etc/group:ADM:x:4:syslog,linuxctechi/etc/group:cdrom:x:24:linuxctechi/etc/group:sudo:x:27:linuxctechi/etc/group:dip:x:30:linuxctechi/etc/group遞歸搜索特定模式............................................................................
上述命令將遞歸搜索/etc目錄中的linuxtechi單詞
示例9使用grep查找文件root @ Linux-world:~ # grep $/etc/shadow中的所有空行
沒有輸出,因為/etc/shadow文件中沒有空行
示例10使用-i參數(shù)查找模式
grep命令的-i參數(shù)在搜索時忽略字符的大小寫。
我們來看一個例子,在passwd文件中查找LinuxTechi單詞。
next step 4it @ localhost:~ $ grep-I linuxtech I/etc/passwd linuxtech I:x:1001:1001::/home/linuxtech I:/bin/bashnextstep 4it @ localhost:~ $ example 11 use-e參數(shù)查找多個模式
例如,我想在一個grep命令中找到linuxtechi和詞根。使用-e參數(shù),我們可以找到多個模式。
root @ Linux-world:~ # grep-e " Linux tech I "-e " root "/etc/passwdroot:x:0:0:root:/root://bin/bashlinux tech I:x:1000:1000:Linux tech I、、、:/home/Linux
首先,在當(dāng)前目錄中創(chuàng)建一個搜索模式文件grep_pattern,我想在文件中輸入以下內(nèi)容。
root @ Linux-world:~ # cat grep _ pattern ^linuxtechi root false $
現(xiàn)在,嘗試使用grep_pattern文件進(jìn)行搜索
root @ Linux-world:~ # grep-f grep _ pattern/etc/passwd
示例13使用-c參數(shù)計算模式匹配的數(shù)量
繼續(xù)上面的例子,我們在grep命令中使用-c命令來計算匹配指定模式的數(shù)量
root @ Linux-world:~ # grep-c-f grep _ pattern/etc/passwd 22示例14在匹配指定模式的行之前或之后輸出N行
使用-B參數(shù)輸出匹配行的前4行 root@Linux-world:~# grep -B 4 "games" /etc/passwd 使用-A參數(shù)輸出匹配行的后4行 root@Linux-world:~# grep -A 4 "games" /etc/passwd 使用-C參數(shù)輸出匹配行的前后各4行 root@Linux-world:~# grep -C 4 "games" /etc/passwd示例15當(dāng)grep搜索目錄時,一些目錄被排除
使用grep搜索目錄時,也會搜索一些隱藏的目錄,比如。git目錄。使用grep時如何排除這些目錄
使用–exclude-dir選項。
語法
- exclude-dir=dir從遞歸搜索中排除與模式DIR匹配的目錄。
單個目錄示例 grep -E "http" ./ -R --exclude-dir=.git 多個目錄示例 grep -E "http" . -R --exclude-dir={.git,res,bin} 多個文件示例排除擴(kuò)展名為 java 和 js 的文件 grep -E "http" . -R --exclude=*.{java,js} 例16 使用 -L參數(shù)列出包含指定模式的文件的文件名反轉(zhuǎn)輸出,并使用-L選項輸出不匹配文件的文件名
grep -L "word "文件名grep -L根目錄/etc/*
1.《grep正則表達(dá)式 grep命令實(shí)例詳解——全局正則表達(dá)式輸出神器》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《grep正則表達(dá)式 grep命令實(shí)例詳解——全局正則表達(dá)式輸出神器》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進(jìn)行證實(shí),對其原創(chuàng)性、真實(shí)性、完整性、及時性不作任何保證。
3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/junshi/1230307.html