grep命令 linux

来源:互联网 发布:网络咸鱼是什么意思 编辑:程序博客网 时间:2024/06/11 23:21

grep命令 linux

grep(global regular expression print,全局正则表达式打印,g代表global,re代表正则表达式,p代表print)。 
grep工具能够使用正则表达式,在一个或者多个文件中搜索,确定是否包含给定的字符串,并将匹配的行打印出来。该程序只显示包含所查找的字符串的文件行,不修改搜索到的文件。

grep格式

grep [options] pattern [file-list]

其中pattern可以是一个简单的字符串,也可以是另一种形式的正则表达式。 
grep根据指定的options选项,采取不同的动作,查找包含与pattern匹配的字符串的行。

options选项

不带任何选项的grep把找到的包含匹配pattern的行发送到标准输出。当在命令行上指定多个文件时,grep将在显示的每行前带上文件名和冒号。

选项

-c          --count             只显示每个文件中包含匹配模式的行数-C n        --context=n         对匹配的每一行显示n行上下文-I      --ignore-case   使得正则表达式中的小写字母可以匹配文件中的大写-m n        --max-count=n   显示包含匹配模式的n行后停止读取输入-n      --line-number   在每行前显示行号,文件不必包含行号-v      --invert-match  显示不包含匹配模式的行-h      --no-filename   当搜索多个文件时,在每行的开始不显示文件名-r      --recursive     递归的搜索file-list中的目录,处理目录中的文件-i      --files-with-matches        仅显示包含一个或多个匹配模式的文件名,                                每个文件名只显示一次,即使包含多个匹配也不例外-f file --file=file     读取文件file,该文件中每一行都包含一个模式,                        从输入中查找匹配每个模式的行-s      --no-message        如果file-list中文件不存在或不可读,不显示错误信息-x      --line-regexp   pattern仅匹配整行-w      --word-regexp   使用该选项,pattern必须与整个字匹配。当要搜索某个字是文件中                        另一个字的子串时有用

pattern中常用选项

\       忽略正则表达式中特殊字符的原有含义。^       匹配正则表达式的开始行。$       匹配正则表达式的结束行。\<      从匹配正则表达 式的行开始。\>      到匹配正则表达式的行结束。[ ]     单个字符,如[A]即A符合要求 。[ - ]   范围,如[A-Z],即A、B、C一直到Z都符合要求 。.       所有的单个字符。*       有字符,长度可以为0

举例

grep "^+" tem.log | grep -v "^+++"

把tem.log文件中开头包含+并且不包含+++的挑选出来

grep "sort" *.doc       #见文件名的匹配

多个文件查询

grep -c "48" data.doc   #输出文档中含有48字符的行数

行匹配:输出匹配行的计数

grep -n "48" data.doc       #显示所有匹配48的行和行号

显示匹配行和行数

grep -vn "48" data.doc      #输出所有不包含48的行

显示非匹配的行

grep -vn "48" data.doc      #输出所有不包含48的行

显示非匹配的行

grep -i "ab" data.doc       #输出所有含有ab或Ab的字符串的行

大小写敏感

0 0
原创粉丝点击