91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

Linux中怎么使用grep

發布時間:2022-01-26 09:07:53 來源:億速云 閱讀:154 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“Linux中怎么使用grep”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Linux中怎么使用grep”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

Grep全稱Global Regular Expression Print,表示全局正則表達式 是一個強大的文本搜索工具,采用正則匹配,與sed、awk并稱Linux三劍客。

Linux中怎么使用grep

1、命令格式 grep [options] files

2、主要參數 -c: 只輸出匹配行的數目 -i: 不區分大小寫 -n:顯示匹配航以及行號 -l:查詢多文件的時候只輸出包含匹配字符的文件名 -v:反向匹配,即顯示不匹配的行 -h: 查詢的時候不適用文件名 -s:不顯示錯誤信息

3、部分正則表達式 \     反義字符:如””””表示匹配”” ^$ 開始和結束 [] 單個字符,[A] [ – ] 匹配一個范圍,[0-9a-zA-Z]匹配所有數字和字母

  • 前面的字符出現0次或者多次

  • 前面的字符出現了一次或者多次 . 任意字符

4、經典場景

除非要精確區分大小寫,否則請加上-i來忽略大小寫

(1)結合find命令和管道 你的一個音樂文件夾里有多種格式的文件,而你只想找到藝術家jay的mp3文件,并且不含有任何的混合音軌

 [root@localhost ~]#find . -name ".mp3" | grep -i jay | grep -vi "remix"

分析: 1)使用find -name 來列出所有mp3文件,重定向給grep

  1. 使用grep -i 來查找包含jay的行 3)使用grep -vi 來查找不包含remix的行

(2)-A -B -C 很多時候,我們并關心匹配行而是關心匹配行的上下文。這時候-A -B -C就有用了 -A n 后n行,A記憶為(After) -B n 前n行,B記憶為(Before) -C n 前n行,后n行,C記憶為(Center) 舉例

 [root@localhost ~]# ifconfig | grep -A 2 "Link encap"
 eth0      Link encap:Ethernet  HWaddr 00:0C:29:F3:38:15  
           inet addr:192.168.91.129  Bcast:192.168.91.255  Mask:255.255.255.0
           inet6 addr: fe80::20c:29ff:fef3:3815/64 Scope:Link
 --
 lo        Link encap:Local Loopback  
           inet addr:127.0.0.1  Mask:255.0.0.0
           inet6 addr: ::1/128 Scope:Host
 
 
 [root@localhost ~]#  ifconfig | grep -C 2 "lo"
           Interrupt:67 Base address:0x2024
 
 
 lo        Link encap:Local Loopback  
           inet addr:127.0.0.1  Mask:255.0.0.0
           inet6 addr: ::1/128 Scope:Host

(3) 用-c來統計數目 你手頭有一個很大的文件,這個文件包含網址,比如www.baidu.com tieba.baidu.com等等。你想要知道有多少個隸屬于百度的網址

 [root@localhost ~]# grep -c "*baidu.com*" filename
 例子
 [root@localhost ~]# cat file.txt
 wtmp begins Mon Feb 24 14:26:08 2014
 192.168.0.1
 162.12.0.123
 "123"
 123""123
 njuhwc@163.com
 njuhwc@gmil.com 123
 www.baidu.com
 tieba.baidu.com
 www.google.com
 www.baidu.com/search/index
 [root@localhost ~]# grep -cn ".*baidu.com.*" file.txt
 3

(4) -r 遞歸查找子目錄 查找當前目錄極其子目錄下面包含匹配字符的文件 查找子目錄,匹配后輸出行號,這里的點表示當前目錄

 [root@localhost ~]# grep -nr HELLO_HWC_CSND_BLOG* .

例子:

 [root@localhost ~]# grep -nr baidu .
 ./file.txt:8:www.baidu.com
 ./file.txt:9:tieba.baidu.com
 ./file.txt:11:www.baidu.com/search/index
 ./test/test.txt:1:http://www.baidu.com

查找子目錄,匹配后只輸出文件名

 [root@localhost ~]# grep -lr HELLO_HWC_CSND_BLOG* .

例子:

 [root@localhost ~]# grep -lr baidu .
 ./file.txt
 ./test/test.txt

(5)–line-buffered 打開buffering 模式 你有一個文件是動態的,它不斷地添加信息到文件的尾部,而你想要輸出包含某些信息的行。即持續的grep一個動態的流

 [root@localhost ~]#tail -f file | grep --line-buffered your_pattern

(6)結合ps查找進程

 [root@localhost ~]# ps aux | grep init
 root         1  0.0  0.1   2072   632 ?        Ss   22:52   0:01 init [5]                            
 root      4210  0.0  0.1   6508   620 ?        Ss   23:01   0:00 /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "/usr/bin/dbus-launch --exit-with-session /etc/X11/xinit/Xclients"
 root      4233  0.0  0.0   2780   504 ?        S    23:01   0:00 /usr/bin/dbus-launch --exit-with-session /etc/X11/xinit/Xclients
 root      4956  0.0  0.1   3920   680 pts/1    R+   23:27   0:00 grep init

這里我們看到了grep init我們執行的命令也被列出來了 如果不想要這一行,我們可以這么改命令

 [root@localhost ~]# ps aux | grep [i]nit
 root         1  0.0  0.1   2072   632 ?        Ss   22:52   0:01 init [5]                            
 root      4210  0.0  0.1   6508   620 ?        Ss   23:01   0:00 /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "/usr/bin/dbus-launch --exit-with-session /etc/X11/xinit/Xclients"
 root      4233  0.0  0.0   2780   504 ?        S    23:01   0:00 /usr/bin/dbus-launch --exit-with-session /etc/X11/xinit/Xclients

(7)查找不包含某一個目錄

 [root@localhost ~]#grep -R --exclude-dir=node_modules 'some pattern' /path/to/search

例子

 [root@localhost ~]# ls
 anaconda-ks.cfg  Desktop  file.txt  find.result  install.log  install.log.syslog  test
 [root@localhost ~]# grep -r baidu .
 ./file.txt:www.baidu.com
 ./file.txt:tieba.baidu.com
 ./file.txt:www.baidu.com/search/index
 ./test/test.txt:http://www.baidu.com

這時候如果我們不想包含test目錄

 [root@localhost ~]# grep -R --exclude-dir=text "baidu" .
 ./file.txt:www.baidu.com
 ./file.txt:tieba.baidu.com
 ./file.txt:www.baidu.com/search/index

如果報錯

 grep: unrecognized option `--exclude-dir=test'

說明版本過老,更新下就ok

(8)查找IP地址 這里用到了-o和-P命令 我們通過man grep查看 -o, –only-matching: Show only the part of a matching line that matches PATTERN. -P, –perl-regexp: Interpret PATTERN as a Perl regular expression. 也就是說-o,只顯示匹配行中匹配正則表達式的那部分 -P,作為Perl正則匹配

 [root@localhost ~]# cat file.txt
 wtmp begins Mon Feb 24 14:26:08 2014
 192.168.0.1
 162.12.0.123
 "123"
 123""123
 njuhwc@163.com
 njuhwc@gmil.com 123
 www.baidu.com
 tieba.baidu.com
 www.google.com
 www.baidu.com/search/index
 [root@localhost ~]# grep -oP "([0-9]{1,3}\.){3}[0-9]{1,3}" file.txt
 192.168.0.1
 162.12.0.123

(9)查找郵箱

 [root@localhost ~]# grep -oP "[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+" file.txt

例子

 [root@localhost ~]# cat file.txt
 wtmp begins Mon Feb 24 14:26:08 2014
 192.168.0.1
 162.12.0.123
 "123"
 123""123
 njuhwc@163.com
 njuhwc@gmil.com 123
 www.baidu.com
 tieba.baidu.com
 www.google.com
 www.baidu.com/search/index
 [root@localhost ~]# grep -oP "[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+" file.txt
 njuhwc@163.com
 njuhwc@gmil.com

讀到這里,這篇“Linux中怎么使用grep”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

萨嘎县| 泸定县| 邯郸县| 大同县| 丹东市| 定安县| 江达县| 吉木乃县| 洮南市| 武汉市| 开化县| 抚顺市| 五寨县| 垫江县| 龙南县| 宣武区| 寿宁县| 徐水县| 仙桃市| 喀什市| 洛宁县| 临夏市| 交城县| 东山县| 易门县| 奎屯市| 盐山县| 洛宁县| 永修县| 岳阳市| 新宁县| 宝应县| 龙岩市| 深泽县| 昌吉市| 广南县| 遂溪县| 宜黄县| 泾阳县| 永丰县| 天水市|