Linux命令:grep

grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

根据网上资源总结了一些grep的用法

格式
grep [options]

主要参数
[options]主要参数:
-c:只输出匹配行的计数。
-I:不区分大 小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。

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

一般grep配合正则表达式一起使用,使用grep的关键是使用好正则表达式。

下面是几个grep命令的使用例子

将/etc/passwd,有出现 root 的行取出来

grep root /etc/passwd

将/etc/passwd,有出现 root 的行取出来,同时显示这些行在/etc/passwd的行号

grep -n root /etc/passwd

将/etc/passwd,将没有出现 root 的行取出来

grep -v root /etc/passwd

grep与正则表达式

1. [] 表示其中的某一个字符 ,例如[ade] 表示a或d或e。例如:grep -n ‘t[ae]st‘ regular_express.txt

2. 可以用^符号做[]内的前缀,表示除[]内的字符之外的字符。比如搜索oo前没有g的字符串所在的行: grep -n ‘[^g]oo‘ regular_express.txt

3. [] 内可以用范围表示,比如[a-z] 表示小写字母,[0-9] 表示0~9的数字, [A-Z] 则是大写字母们。[a-zA-Z0-9]表示所有数字与英文字符。 当然也可以配合^来排除字符。

例如搜索包含数字的行:grep -n ‘[0-9]‘ regular_express.txt

4. 行首与行尾字符:^ 表示行的开头,$表示行的结尾( 不是字符,是位置)那么‘^$‘ 就表示空行,因为只有行首和行尾

比如搜索the在开头的行:grep -n ‘^the‘ regular_express.txt

搜索以小写字母开头的行:grep -n ‘^[a-z]‘ regular_express.txt

搜索开头不是英文字母的行:grep -n ‘^[^a-zA-Z]‘ regular_express.txt

搜索末尾是.的行:grep -n ‘\.$‘ regular_express.txt     //利用\进行转义

5. 任意一个字符. 与重复字符 *

点. 代表一个任意字符,必须存在。如搜索包含g??d的行: grep -n ‘g..d‘ regular_express.txt

在bash中*代表通配符,用来代表任意个字符,但是在正则表达式中,他含义不同,*表示有0个或多个某个字符。 例如 oo*, 表示第一个o一定存在,第二个o可以有一个或多个,也可以没有,因此代表至少一个o。

搜索两个o以上的字符串:grep -n ‘ooo*‘ regular_express.txt

搜索g开头和结尾,中间是至少一个o的字符串:grep -n ‘goo*g‘ regular_express.txt

搜索g开头和结尾的字符串在的行:grep -n ‘g.*g‘ regular_express.txt // .*表示 0个或多个任意字符

时间: 2024-10-14 13:03:31

Linux命令:grep的相关文章

Linux 命令grep, egrep,正则表达式大全

Linux grep 命令     Linux系统中grep,egrep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户. 1.grep : 最早的文本匹配程序,使用POSIX定义的基本正则表达式(BRE)来匹配文本. 2.egrep : 扩展式grep,其使用扩展式正规表达式(ERE)来匹配文本. 3.fgrep : 快速grep,这个版

linux 命令grep正则表达式

Linux 命令grep正则表达式 在linux里面有处理文本的三剑,现在我要说的就是grep正则表达式的使用,正则表达式只是一种表示法,只要工具支持这种表示法,那么该工具就可以处理正则表达式的字符串.vi grep ,awk ,sed 等都支持正则表达式..正则表达式有基本正则表达式和扩展正则表达式. grep默认就是基本表达式. 基本正则表达式: 默认匹配次数:贪婪模式,尽可能多的去匹配. 扩展正则表达式:基于基本正则表达式多加了一些功能,基本一样. 1. grep命令 grep [参数]

linux 命令grep

grep命令用来搜索文本,或从给定的文件中搜索行内包含了给定字符串或单词的文件.通常来说,grep显示匹配的行.使用grep来搜索包括一个或多个正则表达式匹配到的文本行,然后只显示匹配到的行. grep命令的语法: grep  ‘word’  文件名 grep  ‘word’  文件1  文件2  文件3 grep  ‘字符串1  字符串2’  文件名 commad  |  grep  ‘ 某个东西 ’ commad  选项1  |  grep  ‘ 数据 ’ grep  --color  ‘数

Linux 命令 - grep: print lines matching a pattern

grep 搜索文本文件中与指定正则表达式匹配的行 命令格式 grep [OPTIONS] PATTERN [FILE...] 命令参数 Generic Program Information --help 打印帮助信息 -V, --version 打印版本信息 Matcher Selection -E, --extended-regexp 使用基本正则表达式(ERE)解释 PATTERN -F, --fixed-strings 每个模式作为一组固定字符串对待(以新行分隔),而不作为正则表达式.

每天一个linux命令-grep

Linux中grep命令是一个强大的文本搜索工具,它能使用正则表达式匹配文件,并将匹配的内容进行打印输出.grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来),他的使用权限是所有用户. 命令格式 grep [option] pattern filename 命令参数 -a,--text : 不要忽略二进制数据 -A,--after-context=NUM: 除了显示符合范本样式的那一列

Linux 命令——grep | 正则表达式

感觉讲的很详细,瞬间懂了grep,正则. from: here 简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. Unix的grep家族包括grep.egrep和fgrep.egrep和fgrep的命令只跟grep有很小不同.egrep是grep的扩展,支持更多的re元字符, fgrep就是fixe

搞搞Linux命令--grep

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户. grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板.如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名.搜索的结果被送到标准输出,不影响原文件内容. grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成

Linux命令:grep命令 文本搜索

linux grep命令 (global search regular expression(RE) and print out the line )是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.grep这个应用程序最早由肯·汤普逊写成.grep原先是ed下的一个应用程序,名称来自于g/re/p(globally search a regular expression and print,以正规表示法进行全域查找以及打印). grep是非常强大的命令,配合管道一起使

Linux命令grep和find相关使用

一.Linux的alias命令的了解,alias命令主要是设置别名,简单话就是把一长串命令,简单到几个字符都可以实现相同原来.例如查看设置ip地址配置文件,但是我们使用别名就很简单如果在命令行设置,只是临时的,如果推出终端或者推出当前用户,别的用户登录,就无法使用,为了永久使用,就需要写到配置文件中.但是有两种配置,一种只针对这个用户的,还有是所有用户的1.针对当前用户的,只需要在用户的家目录里面设置.bashrc这个文件2.针对所有用户,需要在/etc/bashrc进行设置,在文件的最后添加这

linux命令——grep

在上一个命令中,我们知道可以使用cat来查看文本文件的内容,但是有的时候我们不是需要查看全部内容,而是需要查看包含某些信息的一行,如在渗透中我们需要查看某些配置文件中是否包含一些敏感信息,如密码信息,数据库连接信息等,就可以通过使用grep来进行快速查看我们需要查看的内容了! 使用语法如下: grep 查找内容 要查找内容的文件 如果查找内容中包含空格,那么需要加单引号',如:grep 'test hh' filenema,另外可以在多个文件中进行查找,直接在后面继续添加文件名即可! [emai