Linux中grep命令使用介紹
grep 命令是用來在文件中查找含有一些特定文本。 grep有許多參數(shù),它是一個非常有用的命令
語法:grep [選項] pattern [文件名]
在一個文件中,如何查找所有可以匹配關鍵字的內(nèi)容?
在下面這個例子中,grep在“/etc/password/” 文件下查找所有含有“John” 的行并全部顯示出來
1
2
3
|
# grep John /etc/passwd
jsmith:x:1082:1082:John Smith:/home/jsmith:/bin/bash
jdoe:x:1083:1083:John Doe:/home/jdoe:/bin/bash
|
參數(shù)-v會顯示出所有不包含匹配文本的內(nèi)容。下面的例子中,顯示了所有在“/etc/password”下不含有“John”的內(nèi)容。
注:在“/etc/password”下有幾行不包含“John”,只有第一行顯示了
1
2
|
# grep -v John /etc/passwd
jbourne:x:1084:1084:Jason Bourne:/home/jbourne:/bin/bash
|
在一個特定的文件中有多少行包含指定的匹配內(nèi)容呢?
在下面這個例子中,顯示了在“/etc/password/”下含有“John”的行的總數(shù)
1
2
|
# grep -c John /etc/passwd
2
|
用-cv也可以得到不含有“John”的行的總數(shù)
1
2
|
# grep -cv John /etc/passwd
39
|
如何在查找時忽略大小寫
利用“-i”,搜索的時候會忽略大小寫
1
2
3
|
# grep -i john /etc/passwd
jsmith:x:1082:1082:John Smith:/home/jsmith:/bin/bash
jdoe:x:1083:1083:John Doe:/home/jdoe:/bin/bash
|
如何在所有的子目錄下執(zhí)行相應的查找?
可以利用“-r”來完成。在下面的例子中,在“/home/users/”的子目錄下忽略大小寫,查找“John”,這會以“文件名:匹配的內(nèi)容”形式顯示。也可以利用參數(shù)“-l”,只顯示文件名。
1
2
3
4
5
6
7
|
# grep -ri john /home/users
/home/users/subdir1/letter.txt:John, Thanks for your contribution.
/home/users/name_list.txt:John Smith
/home/users/name_list.txt:John Doe
# grep -ril john /root
/home/users/subdir1/letter.txt
/home/users/name_list.txt
|
【編輯推薦】