码迷,mamicode.com
首页 > 系统相关 > 详细

Linux下文本搜索-GREP篇

时间:2016-12-26 00:20:37      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:工作   less   var   failed   lib   基本用法   常见   用法   文本   

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字符串的文件

Linux下文本搜索-GREP篇

标签:工作   less   var   failed   lib   基本用法   常见   用法   文本   

原文地址:http://www.cnblogs.com/112ba/p/6220580.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!