Linux下文本搜索-GREP篇

Grep应该是所有linux下开发人员天天都会使用的一个搜索工具,以其简单易用、功能强大赢大广大人们的喜爱,熟练使用Grep可以大大提高工具效率,下面总结一下本人在工作在使用上的一些技巧。

一、基本用法

grep [options] PATTERN [FILE...]

常见的options有几下几种:

-a 以文本文件方式搜索

-c 显示满足PATTERN 的个数

-i  忽略大小写

-n 显示匹配的行号

-v 反向选择,即查找不满足PATTERN 的行

-b 显示搜索字符在匹配行出现的首位置

-R/r 递归搜索指定目录下所有文件

-H 打印所有匹配PATTERN 的文件名,目录搜索时非常有用

-E 用于使用多个匹配关键词进行搜索

-w 搜索整个词,而不是词中的部分字串

下面举几个简单例子:

1. 通过-v删除满足PATTERN的文本行

grep -v ‘年代’ test.txt > test.txt 删除test.txt文件中包含’年代’的文本行

2. 匹配包含多个搜索关键词的文本行

grep -En ‘发生|现象’ a.txt  匹配同时包含“发生”和“理象”的文本行,并显示行号

3. 多个options同时使用

grep -i -w -r -E ‘error|failed|failure’ /var/log |less #查看日志的错误信息

4. 代替wc显示文件行数

grep -c ” test.txt

5. 搜索以“我“开头的文本行

grep ‘^我’ test.txt

6. 搜索以“我“结束的文本行

grep ‘我$’ test.txt

7. 搜索非空行

 grep -vn ‘^$’ test.txt

二、高级用法(正则表达式)

? 最多匹配一次
* 匹配零次或者任意多次
+ 匹配一次以上
{n} 匹配n次
{n,} 最少匹配n次
{,m} 最多匹配m次
{n,m} 匹配n到m次

举几个例子:

$ grep ‘[a-z]\{10\}’ test.txt
显示所有包含每个字符串至少有10个连续小写字符的字符串的行。

$ grep \’[^A-FH-Z]rep\’ test.txt

匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。

grep -r ‘hadoop’ `ls | grep -vE ‘bin|boot|dev|initrd|lib’`

全盘搜索(排除bin、boot、dev、initrd、lib)包含hadoop字符串的文件

时间: 2024-10-11 21:22:08

Linux下文本搜索-GREP篇的相关文章

Linux下文本搜索-AWK篇

一.AWK简介 和GREP相比,AWK相对陌生一些,但它的功能更强大,处理起来更灵活,适合处理基于列结构化的文本数据,因为它可以对行数据进行细致的处理,如按特定字符将文本切分成多个字段,进而对各个字段进行下一步的片.它还支持C语法,可以当成脚本语言来使用. 二.基本语法 awk 用法:awk ' pattern {action} '  files ARGC 命令行变元个数 ARGV 命令行变元数组 FILENAME 当前输入文件名 FNR 当前文件中的记录号 FS 输入域分隔符,默认为一个空格

Linux下文本搜索工具grep命令使用入门

grep命令入门 如果想通过使用grep命令来实现理想化的文本搜索,对正则表达式的了解是比不可少的.文献1对正则表达式语法做了一个简单的介绍,文献2提供了一个简单的入门.码农也可以自己google一下其他的参考资料.下面就grep命令的使用做个入门级的介绍. 1.1 grep命令的变种 linux下除了grep命令可以完成文本搜索外,还存在egrep,fgrep,rgrep三个命令.这三个命令都是由grep加上一些控制参数演变而来,如egrep=grep -E, fgrep=grep -F, r

Linux下文本的vim文本替换

Linux命令:vi全局替换方法 语法为 :[addr]s/源字符串/目的字符串/[option] 全局替换命令为::%s/源字符串/目的字符串/g [addr]: 表示检索范围,省略时表示当前行. 如:"1,20" :表示从第1行到20行: "%" :表示整个文件,同"1,$": ". ,$" :从当前行到文件尾: s :表示替换操作 [option] :表示操作类型 如:g 表示全局替换; c 表示进行确认 p 表示替代结

Linux下文件搜索、查找、查看命令

Linux下文件搜索.查找.查看命令 1.最强大的搜索命令:find 查找各种文件的命令 2.在文件资料中查找文件:locate 3.搜索命令所在的目录及别名信息:which 4.搜索命令所在的目录及帮助文档路径:whereis5.在文件中搜寻字符串匹配的行并输出:grep6.分页显示一个文件或任何输出结果:more7.分页显示一个文件并且可以回头:less8.指定显示前多少行文件内容:head9.指定显示文件后多少行内容:tail10.查看一个文件:cat11.查看文件内容多少字符多少行多少字

linux下mysql主从复制(第二篇读写分离) mycat 中间件

linux下mysql主从复制(第二篇读写分离) mycat 中间件 接着上篇文档补全,mysql 读写分离,在上篇文章案例下准备好Mycat-server-1.4-release-20151019230038-win.tar.gz 解压包 1.解压后的文件如下: 1.1 接下来进入到conf 目录下配置四个文件server.xml.schema.xml.rule.xml.log4j.xml 下面一一介绍 1.2 首先在我们主服务上面test 库下新建两张表如下: CREATETABLE`t_u

Linux中文本搜索工具“grep”命令详解

人生中应该有两次冲动,一次是轰轰烈烈的爱情,一次是说走就走的旅行.我属于第三种,轰轰烈烈的辞职然后马不停蹄的参加了马哥的linux面授班,两周时间内对linux有了些初步的了解,与此同时,两周内八天课程中的各种定义.概念.原理.命令由于量大.琐碎,也着实给我们这些小白一个下马威,即使每天11点撤退也觉得时间不够用.鉴于对自己的负责和马哥的作业要求,特对文本搜索工具grep写些使用指南,其中可能会有描述不确切或有偏颇之处,望及时指正. 开始--. 首先,要说一下grep是什么,用在什么地方. gr

Linux下的搜索命令grep(转)

一.简介 grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. 通常grep会结合管道|来使用,比如把上一个命令得到的结果通过管道|传递到grep进行筛选 二.选项 -a 不要忽略二进制数据. -A<显示列数> 除了显示符合范本样式的那一行之外,并显示该行之后的内容. -b 在显示符合范本样式的那一行之外,并

在linux下find和grep

在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find.grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们.本文结构如下: find命令 find命令的一般形式 find命令的常用选项及实例 find与xargs grep命令 grep命令的一般形式 grep正则表达式元字符集(基本集) 1.find命令 find命令是一个无处不在命令,是linux中最有用的命令之一.find命令用于:在一个目录(及子目录)中搜索文件,你可以指定一些匹配条件,如按文件名.

linux下find和grep命令详解

在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find.grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们.本文结构如下: find命令 find命令的一般形式 find命令的常用选项及实例 find与xargs grep命令 grep命令的一般形式 grep正则表达式元字符集(基本集) grep命令的常用选项及实例 1.find命令 find命令是一个无处不在命令,是linux中最有用的命令之一.find命令用于:在一个目录(及子目录)中搜索文件,你可以