Linux 文本 查找命令小结之grep
来源:互联网 发布:软件自带音效 编辑:程序博客网 时间:2024/06/13 15:38
在Linux中 grep是一种文本搜索工具,可以将匹配的信息打印出来。
grep全称 g(Gloally) search for re(Regular Expression) and p(Print) the results 。
在这里废话一句,有些英文文章翻译成中文后,会丢失其原有的韵味,建议大家直接看原文,这样比较好理解作者意图。
好,回归主题,下面开始
------------------------我是快乐的分割线--------------------------
1.grep的格式如下: grep [OPTION]...PATTERN [FILE]....
在FILE 中以PATTERN(PATTERN 是一个基础正则表达式) 格式执行 grep 操作,该操作的参数是OPTION
eg:grep -i "hello world" helloworld.c helloworld.h
在helloworld.c和helloworld.h中执行grep操作(即查找)文本内容“helloworld”,参数 -i 表示不区分大小写。 (看 ,so easy!!!)
2.接下来说说OPTION都有些什么,分别代表什么。
[options]主要参数:
-c:只输出匹配行的计数。
-I:不区分大 小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
3.再说说pattern的主要参数,都有什么,分别起什么作用。
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达 式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :有字符,长度可以为0。
在这里废话一句,基本上grep的使用和find在一起通过管道来使用的,基本的模式如下:
find . -name "*.cpp" |grep "helloworld"
功能如下:查找当前目录及子目录中以cpp结尾的文件,然后在查找结果中查找包含helloworld内容,将最终结果输出。所以管道的作用就是将前面的结果作为后面的基础来使用。废话到此结束,继续正题。。
通过以上的option和pattern参数的了解,基本上grep 的大概作用就可以确定了,下面有几个实例,可以用来学习学习.
1.grep "hello" A.cpp B.cpp C.h 在 ABC文件中查找hello并显示结果
2.grep "[a-z]\{5\}" A.cpp B.cpp C.cpp 在ABC文件中查找连续5个小写字母的 行,并将结果显示。
3.grep “\<man\>” A.cpp 在A 中查找包含man 的行,注意,仅仅是man ,例如batman manni并不会在结果中呈现。
4.grep “^root” A.cpp 在A中查找所有包含root的行,且结果必须符合root在行首的要求。
(1)多个文件查询
grep "sort" *.doc #见文件名的匹配
(2)行匹配:输出匹配行的计数
grep -c "48" data.doc #输出文档中含有48字符的行数
(3)显示匹配行和行数
grep -n "48" data.doc #显示所有匹配48的行和行号
(4)显示非匹配的行
grep -vn "48" data.doc #输出所有不包含48的行
(5)大小写敏感
grep -i "ab" data.doc #输出所有含有ab或Ab的字符串的行
4, 正则表达式的应用
(1)正则表达式的应用 (注意:最好把正则表达式用单引号括起来)
grep '[239].' data.doc #输出所有含有以2,3或9开头的,并且是两个数字的行
(2)不匹配测试
grep '^[^48]' data.doc #不匹配行首是48的行
(3)使用扩展模式匹配
grep -E '219|216' data.doc
5, 使用类名
可以使用国际模式匹配的类名:
[[:upper:]] [A-Z]
[[:lower:]] [a-z]
[[:digit:]] [0-9]
[[:alnum:]] [0-9a-zA-Z]
[[:space:]] 空格或tab
[[:alpha:]] [a-zA-Z]
至于更多的grep用法,还是要在实际中不断总结,最终才能熟练使用,请大家切记。
- Linux 文本 查找命令小结之grep
- linux 命令 文本查找 grep
- linux 命令之 查找 find & grep
- Linux文本过滤命令grep|awk|sed小结
- Linux文本过滤命令grep|awk|sed小结
- Linux文本过滤命令grep|awk|sed小结
- Linux文本过滤命令grep|awk|sed小结
- Linux 查找文本工具grep
- Linux命令之查找文件、文件查找-find,grep
- grep 命令查找文件中的文本字符串
- linux命令系列七之find/grep文本处理
- Linux文本处理三剑客之grep命令
- linux查找命令、find、grep
- Linux命令 --- 查找筛选grep
- linux命令集之grep:字符串查找 (by wealoong)
- linux下的文本操作之 文本查找——grep
- linux命令之grep
- linux 命令之grep
- Asp.Net MVC4.0 学习之十--查看Detail和Delete方法
- memset汇编实现,跟踪得到的
- Java线程池的原理及几类线程池的介绍
- hadoop2.4.1在64位Deepin/Ubuntu系统中编译安装
- OpenStack云计算快速入门之二:OpenStack安装与配置
- Linux 文本 查找命令小结之grep
- 腾讯QQ企业邮箱POP3/SMTP设置
- 杭电 1392 Surround the Trees
- MFC六大核心机制之二:运行时类型识别(RTTI)
- POJ 3276(第二篇)开关问题
- cocos2dx 添加一个新建层的方法。
- Android单元测试
- 黑马程序员-java面试题-银行业务调度系统
- SCN号概述