一、grep简述
grep命令是linux中强大的文本搜索工具,那么grep取名是怎么来的呢?
grep :g(globally) search for are(regular
expression) andp(print ) the results
从上面的英文解释中可以看出,grep命令使用正则表达式搜索文本,并把匹配的行打印出来
二、grep使用格式
grep [OPTION]... PATTERN [FILE]...
三、OPTION
-i:匹配时不区分大小写进行匹配。
-w:匹配时只匹配整个单词,而不是字符串的一部分(如PATTERN='she'时匹配单词she,而不匹配shell)
-h:输出时每行行首不显示文件名。
-H:输出时每行行首显示文件名。
-n:输出时每行显示行号。
-c:输出时只显示每个文件匹配行计数。
-L:输出时只显示不包含匹配项的文件名。
-l:输出时只显示包含匹配项的文件名。
-o:输出时每行只显示匹配项内容
-s:忽略错误信息。
-v:逆向匹配,选择不匹配的行。
-A:After的意思,显示匹配项后n行的数据
-B:before的意思,显示匹配项前n行的数据
-C:显示匹配字符串前后各n行的数据
--color:以特定颜色高亮显示匹配项内容
--color选项是个非常好的选项,可以让你清楚匹配上哪些字符。
最好在自己的.bashrc文件中加入:
alias grep='grep --color=auto'
再以source .bashrc来立即生效即可这样在每次grep搜索之后,自动高亮匹配效果了。grep 'she' test.txt
grep -i 'she' test.txt
grep -c 'she' test.txt
grep -in 'she' test.txt
grep -v 'she' test.txt
grep -w 'she' test.txt
grep -o 'she' test.txt
grep -C 2 'she' test.txt
着重说下-o参数
假如grep 'she' test.txt输出为
she is beautiful
I like she
则grep -o 'she' test.txt输出为
she
she
意思就是只显示匹配项部分,行中其它部分不显示
另说明下,PATTERN是正则表达式,为了避免shell的元字符对正则表达式的影响,请用单引号('')括起来,不要用双引号括起来("")或者不括起来。
四、PATTERN
基本正则表达式
基本正则表达式
字符
含义
实例
\ |
转义字符 |
|
^ |
锚定行的开始 |
'^help'匹配以help开头的行 |
$ |
锚定行的结束 |
'help$'匹配以help结尾的行 |
. |
匹配任意一个非换行符的字符 |
'he.p'匹配help,heap等,但不能匹配hep |
* |
前面的字符重复0到多次 |
'he*p'匹配hp,hep,heep等 |
[list] |
匹配字符集中的一个字符 |
'[hk]elp'匹配help,kelp |
[n1-n2] |
匹配字符范围中的一个字符 |
'[a-z]elp'匹配aelp,belp,...,zelp |
[^list] |
匹配字符集以外的一个字符 |
'[^a-d]elp'不匹配aelp,belp,celp,delp。可匹配eelp,help, elp等 |
\{n1,n2\} |
前面的字符重复n1-n2次 |
'h\{1,3\}elp'匹配help,hhelp,hhhelp |
\< |
锚定单词的开始 |
'\<h'匹配以h开头的单词。匹配help,但不匹配while |
\> |
锚定单词的结尾 |
'p\>'匹配以p结尾的单词。匹配help,但不匹配person |
特别说明:^在PATTERN开始位置出现才表示锚定行的开始,其它位置出现只是作为^字符。
例如:
grep '^help' test.txt 表示匹配以help开头的行
grep 'help^' test.txt 表示匹配包含字符串help^的行
同理,$在PATTERN末尾位置出现才表示锚定行的结束,其它位置出现只是作为$字符。
PATTERN为'^$'表示空行,因为只有行首和行尾
\{n1,n2\}中n2可省略,表示前面字符重复n1至多次,重复次数不设上限
扩展正则表达式
grep一般情况下支持基本正则表达式,可以通过参数-E支持扩展正则表达式,另外grep单独提供了一个扩展命令叫做egrep用来支持扩展正则表达式,这条命令和grep -E等价。
扩展正则表达式
字符
含义
实例
+ |
前面的字符重复1到多次 |
'he+p'匹配hep,heep,heeep等,但不匹配hp |
? |
匹配0或1次前面的字符 |
'he?p'匹配hp,hep |
| |
或的方式匹配多个字串 |
'help|heap'匹配help,heap |
() |
匹配整个括号内的字符串 |
'(help)+'匹配help,helphelp等,注意与'help+'的区别 |
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
### Linux中利用grep命令检索文件内容详解 #### 前言 在Linux系统中,进行文件内容搜索是一项常见的任务。为了高效地完成这项任务,Linux提供了多种工具,其中`grep`命令是最为常用的一种。本篇文章将深入探讨如何...
这份"Linux学习笔记(强悍总结值得一看)"是Linux初学者的宝贵资源,也适合有经验的用户作为参考手册。以下是对笔记内容的详细概述: 1. **Linux常用命令**: Linux命令行是其强大的工具,掌握常用命令是Linux学习...
- grep命令用于在文件内容中搜索特定的字符串。 四、帮助命令 - man命令用于查看命令的手册页,是获取命令详细信息的重要工具。 - 其他帮助命令如--help,可用于获取命令的简要帮助信息。 五、压缩命令 - Linux中...
### Linux学习笔记与命令总结 #### 一、Linux基础概念 1. **Kernel 内核**: Linux 的核心部分,负责管理系统的硬件资源,并提供必要的服务给其他系统软件和应用程序。 2. **Shell 外壳**: 用户与操作系统之间的...
通过学习这些基本的Linux命令和Shell操作,初学者可以更快地熟悉Linux环境,并能有效地管理和操作Linux系统。此外,掌握这些技能还有助于提升在开发、运维以及其他与Linux相关的领域的专业能力。
以下是对Linux系统命令的个人总结,主要涵盖进程管理、用户登录与退出、目录操作以及文件操作等方面。 ### 第一章 进程 #### 1.1 查看进程 使用`ps`命令可以查看当前终端下的进程状态,而`ps -aux`则能显示系统中...
1. **Linux入门命令**:学习Linux首先要掌握基础的命令行操作,如`ls`用于列出目录内容,`cd`用于切换目录,`mkdir`创建新目录,`touch`创建文件,`rm`删除文件或目录,`cp`和`mv`分别用于复制和移动文件或目录。...
6. **grep命令**: - `grep -l 'aaa' *`:显示包含"aaa"的文件名。 - `grep -n 'aaa' file`:在匹配行前显示行号。 - `grep -i 'aaa' file`:不区分大小写搜索。 - `grep -v 'aaa' file`:显示不包含"aaa"的行。...
在Linux或Unix环境中,`grep`、`sed`和`awk`是三个非常强大的文本处理工具。通过掌握这些工具的基本用法及高级功能,用户可以高效地处理各种文本文件。下面将详细介绍如何使用这些命令进行具体的文本操作。 #### 1....
了解和掌握这些基本命令是Linux学习的基础,随着经验的积累,可以进一步探索更高级的系统管理技巧,如shell脚本编写、进程管理、网络配置等。记住,实践是提高技能的关键,不断地在命令行中尝试和应用这些命令,将有...
### Linux命令学习总结——更新 #### 一、引言 Linux作为一款强大的开源操作系统,在服务器领域占据了主导地位。对于IT从业者来说,掌握一系列基础而重要的Linux命令是非常必要的。本文将针对给定文件中的核心知识...
要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。 安装和登录命令 1. login命令:用于登录系统,所有用户都可以使用该命令。格式:login [name][-p ][-h 主机名称]...
总结,Linux命令是Linux系统操作的核心,通过不断实践和学习,你可以成为一个高效的Linux用户。记住,每一个命令都是你通向更深层次Linux世界的一把钥匙。不断探索,你会发现更多有趣和实用的功能。
这篇博客文章将围绕“Linux常用命令(持续总结)”展开,旨在帮助你提升在Linux环境中的工作效率。 1. **ls** 命令: - 用于列出目录内容。例如,`ls -l` 可以显示详细信息,`ls -a` 显示包括隐藏文件在内的所有...
本部分提到的“Linux核心命令速查手册”是一份专注于Linux操作系统内核命令的实用指南。Linux是一种广泛应用于...Linux核心命令速查手册将这些命令汇集在一起,方便用户随时查阅,是Linux学习工作不可或缺的工具书。
Linux笔记——命令:grep Linux笔记——命令:find Linux笔记——命令:Sort,uniq,join,cut,paste,split Linux笔记——shell基础:变量&本地变量&位置变量&特定变量参数 Linux笔记——条件测试test Linux笔记——控制...
### Linux基本命令操作实验报告知识点总结 #### 一、实验目的 - **了解Linux用户界面**:本实验旨在让学生理解Linux系统中用户交互的方式,包括命令行界面和图形用户界面。 - **掌握常用命令**:重点是让学生熟练...
### Linux学习笔记(强悍总结值得一看) #### 一、Linux常用操作命令及命令行编辑快捷键 Linux系统作为一款强大的开源操作系统,在服务器管理和日常开发工作中都有着广泛的应用。掌握其基本命令和快捷键对于提高...