grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符,fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。linux使用GNU版本的grep。它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。
grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到屏幕,不影响原文件内容。
grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。
典型参数:
-i,--ignore-case
忽略大小写差别。
-h,--no-filename
当搜索多个文件时,不显示匹配文件名前缀。
egrep -i -h "^ttg" user.txt .bashrc
-q,--quiet
取消显示,只返回退出状态。0则表示找到了匹配的行。
egrep -i -h "^ttg" user.txt .bashrc -q&&echo "aaa"
-l,--files-with-matches
打印匹配模板的文件清单,只打印文件的名字,不打印匹配的行
-L,--files-without-match
打印不匹配模板的文件清单。
-n,--line-number
在匹配的行前面打印行号。
-v,--revert-match
反检索,只显示不匹配的行。很常用
-c,--count
只打印匹配的行数,不显示匹配的内容。
-----------------------------忧伤的分割线----------------------------------------------------------
^
锚定行的开始 如:'^grep'匹配所有以grep开头的行。
$
锚定行的结束 如:'grep$'匹配所有以grep结尾的行。
.
匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。
*
匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。 .*一起用代表任意字符。
[]
匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。
[^]
匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。
\(..\)
标记匹配字符,如'\(love\)',love被标记为1。
\<
锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。
\>
锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。
x\{m\}
重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。
x\{m,\}
重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。
x\{m,n\}
重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。
\w
匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。
\W
\w的反置形式,匹配一个或多个非单词字符,如点号句号等。
\b
单词锁定符,如: '\bgrep\b'只匹配grep。
http://man.lupaworld.com/content/manage/ringkee/grep.htm
分享到:
相关推荐
grep Search for matching patterns groups Discover peer groups help To access help pages use the 'man' command. history No description available for this ShellApp importfile Import an external file ...
安装完成后,其自带的Bash shell会提供一个与Linux相似的命令行环境,包括“grep”命令。如果你不想使用完整的bash环境,也可以单独安装msys2,并通过pacman包管理器安装grep,如`pacman -S grep`。 配置环境变量是...
08_文本过滤-grep 家族.PDF 09_文本过滤-AWK 介绍.PDF 10_文本过滤-sed 用法介绍.PDF 11_文本过滤-合并与分割.PDF 12_文本过滤-tr 用法.PDF 13_登录环境-登录环境.PDF 14_登录环境-环境和shell变量.PDF 15_...
### Shell之grep详解 #### 一、概述 `grep` 是 Linux 和 Unix 系统中一个非常重要的文本处理工具,其名称来源于 Global Regular Expression Print 的缩写,意为全局正则表达式打印。通过 `grep` 命令,用户能够...
### 文本处理工具三剑客之——grep 在Linux系统管理与开发中,文本处理是一项极为重要的技能。作为文本处理的三大工具之一,`grep`以其强大的文本搜索能力而著称,尤其当它与正则表达式相结合时,能够极大地提高...
9. **实用工具**:介绍常用的Unix/Linux命令,如grep、sed、awk、find、sort、uniq等,以及它们在Shell脚本中的应用。 10. **案例分析**:可能包含一些实际问题的解决方案,展示如何使用Shell脚本来自动化日常任务。...
Bash 编程是 shell 编程的一种,包括指令、翻译、程序控制语句等知识点。文件搜索是 Linux 中的一种基本操作,包括 globbing 和 grep 命令。globbing 是一种文件名匹配模式,可以使用通配符来匹配文件名。grep 命令...
grep命令是Linux系统中非常重要的文本搜索工具,它可以对文件中的内容进行搜索,并根据用户的搜索模式,显示出包含该模式的行。grep是Global Regular Expression Print的缩写,它支持POSIX基本正则表达式和扩展正则...
Shell程序设计 - 命令 grep.mp4,Linux系统shell编程培训课程视频,大厂内部员工培训资料,欢迎下载学习
3. **管道符** (`|`):将一个命令的输出作为另一个命令的输入,例如`ls -l | grep .txt`会列出所有.txt结尾的文件。 4. **重定向**:`>`和`用于重定向输出或输入,例如`command > output.txt`将命令的输出保存到文件...
在Linux操作系统中,Shell是一种命令解释器,它作为用户与操作系统内核之间的接口,让我们能够通过文本命令来执行系统操作。Shell脚本是利用Shell语言编写的程序,它可以自动化一系列命令,实现批量处理任务,包括...
例如,`ls`用于列出目录内容,`cd`用于切换目录,`grep`用于搜索文本模式,而管道可以将一个命令的输出作为另一个命令的输入。重定向允许我们改变命令的默认输入和输出,比如`>`用于覆盖输出到文件,`>>`则用于追加...
该命令首先使用 `grep` 命令查找 `/etc/passwd` 文件中包含 `root`、`fedora` 或 `user1` 的行,然后使用 `cut` 命令按照冒号分隔,并取出第七个字段,即用户的默认 shell。 #### 作业2:找出/etc/rc.d/init.d/...
在Linux世界里,常见的Shell有Bash(Bourne-Again SHell)、C Shell、Korn Shell以及Z Shell等,其中Bash是大多数现代Linux发行版的默认Shell。 **Bash Shell** Bash是GNU项目的一部分,它是对原始的Unix Bourne ...
4. **正则表达式**:在搜索和替换文件内容时,正则表达式是一种强大的工具,如`grep`命令可以配合正则表达式进行文本筛选。 5. **脚本编写**:编写Shell脚本可以让重复性任务自动化,基础元素包括变量、条件语句(`...
在shell脚本中,可以使用正则表达式进行模式匹配,如在`grep`命令中。 **脚本调试** `set -x`可以在脚本执行时打印出每一步的操作,方便调试。 **函数和别名** 定义函数可将常用命令组合起来,别名则可为命令创建...
6. **grep** 和 **awk**:这两个命令常用于日志分析。通过匹配特定的日志条目,我们可以检查错误、警告和其他异常情况。 7. **logrotate**:虽然不是直接在shell脚本中使用,但了解日志轮换对于健康检查也很重要。...
shell,perl,python,一直都是文本操作的专家语言,而我们今后学习的的将是shell的噱头–文本操作。下面提到最常见的一个: grep 这算是文本内容的一个重量级选手,能根据某些规格在上千行的文本文件中查找所需要的...
在Shell环境中,你可以利用各种Linux命令来执行任务,例如ls列出目录内容,cd改变目录,mv移动或重命名文件,cp复制文件,rm删除文件,mkdir创建目录,rmkdir删除目录,cat查看文件内容,vi或nano编辑文本文件,以及...