linux命令---grep

来源:互联网 发布:淘宝网上购物商城 编辑:程序博客网 时间:2024/04/30 07:54

1.作用

linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

2.实例

$ ls |grep '\b40\b'
只打印匹配的行数
$ grep -i 'grep' file
匹配时忽略大小写,所以‘grep’,'Grep','greP'等等都会匹配。
$ grep ‘test’ d*
显示所有以d开头的文件中包含test的行。
$ grep ‘[a-z]\{5\}’ aa
显示所有包含每个字符串至少有5个连续小写字符的字符串的行。
$ grep -r
明确要求搜索子目录
或忽略子目录:grep -d skip
$ grep -i pattern files
不区分大小写地搜索。默认情况区分大小写,
$ grep -l pattern files
只列出匹配的文件名,
$ grep -L pattern files
列出不匹配的文件名,
$ grep -w pattern files
只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’),
$ grep -C number pattern files
匹配的上下文分别显示[number]行
$ ls |grep 'conf*'
conf
conf.bak
$ ls |grep -C 2 'conf*'
1.txt
2.txt
conf
conf.bak
11.txt
22.txt
$ grep pattern1 | pattern2 files
显示匹配 pattern1 或 pattern2 的行,
$ grep pattern1 files | grep pattern2
显示既匹配 pattern1 又匹配 pattern2 的行。
$ ll | grep '^d'
显示以d开头的行
$ ll | grep 'conf$'

显示以conf结尾的行
$ grep -E '(text1|text3)'
匹配“text1”或者“text3”

$ ll |grep 'gr.p'
匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。
$ ll |grep '*grep'
    匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。 .*一起用代表任意字符。
$ ll |grep '[Gg]rep'
    匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。
$ ll |grep '[Gg]rep'
    匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。
$ ll |grep '\(love\)'
    标记匹配字符,如'\(love\)',love被标记为1。
$ ll |grep '\<grep'
    锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。
$ ll |grep 'grep\>'
    锚定单词的结束,'grep\>'如匹配包含以grep结尾的单词的行。  
$ ll |grep 'o\{5,10\}'
    重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。
$ ll |grep 'G\w*p'
    匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。
$ ll |grep G\w*p'
    \w的反置形式,匹配一个或多个非单词字符,如点号句号等。
$ ll |grep '\bgrep\b'
    单词锁定符,如: '\bgrep\b'只匹配grep。