grep 显示包含两个关键字_linux三剑客之-grep
一、grep簡介
1.介紹
全局查找正則表達(dá)式并且打印結(jié)果行的命令。
2.輸入
一個文件或者一個標(biāo)準(zhǔn)輸入(stdin),或者是一個“-”連字符()。
3.輸出
打印在屏幕上
4.grep家族擴(kuò)展命令
egrep、fgrep
二、 Grep命令的應(yīng)用
1.命令格式
grep [選項] 模式 [文件…]
例如:grep root /etc/passwd
(1) grep在文件/etc/passwd中查找模式root
(2) 如果查找成功,文件中相應(yīng)的行會顯示在屏幕上;如果沒有找到指定的模式,就不會有任何輸出。
(3) 如果指定的文件不是一個合法文件,屏幕上會顯示報錯信息。
(4) 如果發(fā)現(xiàn)了要查找的模式,grep就返回退出狀態(tài)0,表示成功;如果沒找到,返回的退出狀態(tài)為1;找不到指定文件時,退出狀態(tài)將是2。
(5) grep的程序輸入可以來自標(biāo)準(zhǔn)輸入或管道、文件。
(6) 如果忘了指定文件,grep會以為你要從標(biāo)準(zhǔn)輸入獲取輸入,于是停下來等你鍵入一些字符。
(7) 如果輸入來自管道,就會有另一條命令的輸入通過管道變成grep命令的輸入。
例如:ps -ef | grep root
ps命令的輸出被送到grep,然后所有包含root的行都被打印到屏幕上。
2.原理
grep命令在一個或多個文件中查找某個字符串的模式。
3.注意
(1) 如果模式中包含空格,就必須用引號括起來。
(2) 模式可以是一個被括號括起來的字符串,也可以是單個詞。
(3) 位于模式之后所有的單詞都被視為文件名。
(4) grep不會對輸入文件進(jìn)行任何修改和變化。
三、正則表達(dá)式元字符
grep支持很多正則表達(dá)式元字符,以便用戶更精確的定義要查找的模式。
四、grep選項
五、grep使用正則表達(dá)式示例
1. grep root /etc/passwd
2. grep ^root /etc/passwd
3. grep login$ /etc/passwd
4. grep 'bind Da' /etc/passwd
因為bind和Da中間有空格所以加了單引號,否則只會匹配bind
5. grep '5..' test.txt
打印所有包含5,后面跟一個.號,再跟一個任意字符的行。.代表單個字符,被轉(zhuǎn)義后,只代表本身一個.號
6. grep '^[rt]' /etc/passwd
7. grep '[^0-9]' test.txt
8. grep '[A-Z][A-Z][A-Z]' test.txt
9. grep "root*" /etc/passwd
10. grep '[a-z]{9}' /etc/passwd
11. grep '' test.txt
12. grep '' /etc/passwd
打印所有包含以小寫字母開頭,以n結(jié)尾,中間由任意多個字符組成的單詞的行,注意:符號.*代表任意字符,包括空格
六、 grep選項示例
1. grep -n 'north' test.txt
2. grep -i 'pid' test.txt
3. grep -v 'root' /etc/passwd
4. grep -l 'root*' /etc/passwd ~/test.txt
使用-l使grep只輸出包含模式的文件名,而不輸出文本行
5. grep -c 'root' /etc/passwd
打印含有模式的行的數(shù)目
6. grep -w 'north' test.txt
查找作為一個詞,而不是詞的一部分出現(xiàn)的模式
七、 grep與管道
1. ls | grep 'test'
2. ls | grep ^te
ls命令輸出通過管道傳給grep
八、 egrep擴(kuò)展
egrep在grep的基礎(chǔ)上增加了更多的元字符。但是egrep不允許使用{},{}
1. egrep使用的正則表達(dá)式元字符
2. 示例
grep不支持”|“這個,egrep支持”|“,egrep查到了包含west或north的行
總結(jié)
以上是生活随笔為你收集整理的grep 显示包含两个关键字_linux三剑客之-grep的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 搭建高性能计算环境(九)、应用软件的安装
- 下一篇: jQuery之Ajax