posts - 791,  comments - 394,  trackbacks - 7

linux grep命令

1.作用
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

2.格式
grep [options]

3.主要参数
[options]主要参数:
-c:只输出匹配行的计数。
-I:不区分大 小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达 式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :有字符,长度可以为0。

4.grep命令使用简单实例
$ grep ‘test’ d*
显示所有以d开头的文件中包含 test的行。
$ grep ‘test’ aa bb cc
显示在aa,bb,cc文件中匹配test的行。
$ grep ‘[a-z]\{5\}’ aa
显示所有包含每个字符串至少有5个连续小写字符的字符串的行。
$ grep ‘w\(es\)t.*\1′ aa
如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着 另外一个es(\1),找到就显示该行。如果用egrep或grep -E,就不用”\”号进行转义,直接写成’w(es)t.*\1′就可以了。

5.grep命令使用复杂实例
假设您正在’/usr/src/Linux/Doc’目录下搜索带字符 串’magic’的文件:
$ grep magic /usr/src/Linux/Doc/*
sysrq.txt:* How do I enable the magic SysRQ key?
sysrq.txt:* How do I use the magic SysRQ key?
其中文件’sysrp.txt’包含该字符串,讨论的是 SysRQ 的功能。
默认情况下,’grep’只搜索当前目录。如果 此目录下有许多子目录,’grep’会以如下形式列出:
grep: sound: Is a directory
这可能会使’grep’ 的输出难于阅读。这里有两种解决的办法:
明确要求搜索子目录:grep -r
或忽略子目录:grep -d skip
如果有很多 输出时,您可以通过管道将其转到’less’上阅读:
$ grep magic /usr/src/Linux/Documentation/* | less
这样,您就可以更方便地阅读。

有一点要注意,您必需提供一个文件过滤方式(搜索全部文件的话用 *)。如果您忘了,’grep’会一直等着,直到该程序被中断。如果您遇到了这样的情况,按 <CTRL c> ,然后再试。

下面还有一些有意思的命令行参数:
grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’),
grep -C number pattern files :匹配的上下文分别显示[number]行,
grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,
grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。

grep -n pattern files  即可显示行号信息

grep -c pattern files  即可查找总行数

这里还有些用于搜索的特殊符号:
\< 和 \> 分别标注单词的开始与结尾。
例如:
grep man * 会匹配 ‘Batman’、’manic’、’man’等,
grep ‘\<man’ * 匹配’manic’和’man’,但不是’Batman’,
grep ‘\<man\>’ 只匹配’man’,而不是’Batman’或’manic’等其他的字符串。
‘^’:指匹配的字符串在行首,
‘$’:指匹配的字符串在行 尾,

Grep 命令 用法大全

1、 参数: 
-I :忽略大小写 
-c :打印匹配的行数 
-l :从多个文件中查找包含匹配项 
-v :查找不包含匹配项的行 
-n:打印包含匹配项的行和行标

2、RE(正则表达式) 
\ 忽略正则表达式中特殊字符的原有含义 
^ 匹配正则表达式的开始行 
$ 匹配正则表达式的结束行 
\< 从匹配正则表达式的行开始 
\> 到匹配正则表达式的行结束 
[ ] 单个字符;如[A] 即A符合要求 
[ - ] 范围 ;如[A-Z]即A,B,C一直到Z都符合要求 
. 所有的单个字符 
* 所有字符,长度可以为0

3、举例 
# ps -ef | grep in.telnetd 
root 19955 181 0 13:43:53 ? 0:00 in.telnetd

# more size.txt size文件的内容 
b124230 
b034325 
a081016 
m7187998 
m7282064 
a022021 
a061048 
m9324822 
b103303 
a013386 
b044525 
m8987131 
B081016 
M45678 
B103303 
BADc2345

# more size.txt | grep '[a-b]' 范围 ;如[A-Z]即A,B,C一直到Z都符合要求 
b124230 
b034325 
a081016 
a022021 
a061048 
b103303 
a013386 
b044525 
# more size.txt | grep '[a-b]'* 
b124230 
b034325 
a081016 
m7187998 
m7282064 
a022021 
a061048 
m9324822 
b103303 
a013386 
b044525 
m8987131 
B081016 
M45678 
B103303 
BADc2345

# more size.txt | grep 'b' 单个字符;如[A] 即A符合要求 
b124230 
b034325 
b103303 
b044525 
# more size.txt | grep '[bB]' 
b124230 
b034325 
b103303 
b044525 
B081016 
B103303 
BADc2345

# grep 'root' /etc/group 
root::0:root 
bin::2:root,bin,daemon 
sys::3:root,bin,sys,adm 
adm::4:root,adm,daemon 
uucp::5:root,uucp 
mail::6:root 
tty::7:root,tty,adm 
lp::8:root,lp,adm 
nuucp::9:root,nuucp 
daemon::12:root,daemon

# grep '^root' /etc/group 匹配正则表达式的开始行 
root::0:root

# grep 'uucp' /etc/group 
uucp::5:root,uucp 
nuucp::9:root,nuucp

# grep '\<uucp' /etc/group 
uucp::5:root,uucp

# grep 'root$' /etc/group 匹配正则表达式的结束行 
root::0:root 
mail::6:root

# more size.txt | grep -i 'b1..*3' -i :忽略大小写

b124230 
b103303 
B103303

# more size.txt | grep -iv 'b1..*3' -v :查找不包含匹配项的行

b034325 
a081016 
m7187998 
m7282064 
a022021 
a061048 
m9324822 
a013386 
b044525 
m8987131 
B081016 
M45678 
BADc2345

# more size.txt | grep -in 'b1..*3' 
1:b124230 
9:b103303 
15:B103303

# grep '$' /etc/init.d/nfs.server | wc -l 
128 
# grep '\$' /etc/init.d/nfs.server | wc –l 忽略正则表达式中特殊字符的原有含义

15 
# grep '\$' /etc/init.d/nfs.server 
case "$1" in 
>/tmp/sharetab.$$ 
[ "x$fstype" != xnfs ] && 
echo "$path\t$res\t$fstype\t$opts\t$desc" 
>>/tmp/sharetab.$$ 
/usr/bin/touch -r /etc/dfs/sharetab /tmp/sharetab.$$ 
/usr/bin/mv -f /tmp/sharetab.$$ /etc/dfs/sharetab 
if [ -f /etc/dfs/dfstab ] && /usr/bin/egrep -v '^[ ]*(#|$)' 
if [ $startnfsd -eq 0 -a -f /etc/rmmount.conf ] && 
if [ $startnfsd -ne 0 ]; then 
elif [ ! -n "$_INIT_RUN_LEVEL" ]; then 
while [ $wtime -gt 0 ]; do 
wtime=`expr $wtime - 1` 
if [ $wtime -eq 0 ]; then 
echo "Usage: $0 { start | stop }"

# more size.txt

the test file 
their are files 
The end

# grep 'the' size.txt 
the test file 
their are files

# grep '\<the' size.txt 
the test file 
their are files

# grep 'the\>' size.txt 
the test file

# grep '\<the\>' size.txt 
the test file

# grep '\<[Tt]he\>' size.txt 
the test file

==================================================================

1,简介
使用正则表达式的一个多用途文本搜索工具.这个php?name=%C3%FC%C1%EE" οnclick="tagshow(event)" class="t_tag">命令本来是ed行编辑器中的一个php?name=%C3%FC%C1%EE" οnclick="tagshow(event)" class="t_tag">命令/过滤器:
        g/re/p -- global - regular expression - print.
基本格式
grep pattern [file...]
(1)grep 搜索字符串 [filename]
(2)grep 正则表达式 [filename]
在文件中搜索所有 pattern 出现的位置, pattern 既可以是要搜索的字符串,也可以是一个正则表达式.
注意:在输入要搜索的字符串时最好使用双引号/而在模式匹配使用正则表达式时,注意使用单引号

2,grep的选项
    -c 只输出匹配行的计数
    -i 不区分大小写(用于单字符)
    -n 显示匹配的行号
    -v 不显示不包含匹配文本的所以有行
    -s 不显示错误信息
    -E 使用扩展正则表达式
    更多的选项请查看:man grep

3,常用grep实例

(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的行

(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

(4) ...
    这需要在实践中不断应用和总结,熟练掌握正则表达式。

5, 使用类名
可以使用国际模式匹配的类名:
[[:upper:]]   [A-Z]
[[:lower:]]   [a-z]
[[:digit:]]   [0-9]
[[:alnum:]]   [0-9a-zA-Z]
[[:space:]]   空格或tab
[[:alpha:]]   [a-zA-Z]

(1)使用
    grep '5[[:upper:]][[:upper:]]' data.doc     #查询以5开头以两个大写字母结尾的行

分类: Linux
绿色通道: 好文要顶 关注我 收藏该文与我联系 

风生水起
关注 - 0
粉丝 - 404

+加关注

24
0
(请您对文章做出评价)

« 上一篇:大数据下的数据分析平台架构zz
» 下一篇:chmod命令详细用法

posted on 2012-02-21 11:03 风生水起 阅读(369488) 评论(13) 编辑 收藏

FeedBack:

#1楼
2013-03-24 14:58 | jihite

nice
支持(0)反对(0)

回复引用

#2楼
2013-04-02 15:05 | 冰玉翔龙

很好
支持(0)反对(0)

回复引用

#3楼
2013-05-14 10:51 | zhangcaiyun_86

perfect
支持(0)反对(0)

回复引用

#4楼
2013-12-04 14:34 | huazhiliange

good
支持(0)反对(0)

回复引用

#5楼
2014-02-03 19:22 | codezyc

谢谢楼主的分享。
支持(0)反对(0)

回复引用

#6楼
2014-02-11 13:39 | 疯子也疯狂

很详细..
支持(0)反对(0)

回复引用

#7楼
2014-07-16 14:32 | enrov

总结得好详细的,但发现了个小问题:-I:不区分大 小写(只适用于单字符);这个还是写小写的i比较好,大写的和l不太容易分辨。嘿嘿,,,
支持(0)反对(0)

回复引用

#8楼
2014-07-25 16:06 | 闲闲流水

很详细
支持(0)反对(0)

回复引用

#9楼
2014-09-24 15:16 | 二爷

good
支持(0)反对(0)

回复引用

#10楼
2014-09-26 13:26 | wade419

1
2
3
$a=1;
$a$b+$c

支持(0)反对(0)

回复引用

#11楼
2014-12-17 16:24 | dudu_java

很详细
支持(0)反对(0)

回复引用

#12楼
2015-01-09 10:54 | keepstrive

3.主要参数
[options]主要参数:
-c:只输出匹配行的计数。
-I:不区分大 小写(只适用于单字符)。

-------------------------------------------------------
这里应该是小写的-i

支持(0)反对(0)

回复引用

#13楼
2015-03-17 11:58 | tshare365

写的不错 学习了
支持(0)反对(0)

回复引用

发表评论

昵称:

评论内容:
     

注销 订阅评论

[使用Ctrl+Enter键快速提交]

最新IT新闻:
· 微软推媒体实时编码云服务 开拓新路竞争亚马逊
· 56页图灵手写原稿以¥637万成功拍卖
· Mozilla起草HTTP淘汰计划
· 多年漏洞被发现 可影响所有Windows版本用户
· 美加州罪犯学习编程 出狱后真的变身为程序员
» 更多新闻...

最新知识库文章:

· 移动应用测试——打造完美应用的秘诀
· 什么是对象,为什么要面向对象,怎么才能面向对象?
· 驱动方法不能改变任何事情
· 推行TDD的思考
· 首席工程师揭秘:LinkedIn大数据后台是如何运作的

» 更多知识库文章...

< 2012年2月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 1 2 3
4 5 6 7 8 9 10
即使你拥有人人羡慕的容貌,博览群书的才学,挥之不尽的财富,也不能证明你的强大,因为心的强大,才是真的强大。

昵称:风生水起
园龄:9年
粉丝:404
关注:0

+加关注

搜索

常用链接

  • 我的随笔
  • 我的评论
  • 我的参与
  • 最新评论
  • 我的标签

随笔分类

  • Agile方法研究(11)
  • C# DOTNET(80)
  • JAVA(17)
  • JavaScript(2)
  • Linux(63)
  • MySql(22)
  • NoSql(123)
  • ORM 框架 思路(12)
  • PHP(3)
  • Python(4)
  • SEO(4)
  • SSIS(5)
  • UML(4)
  • VB C++(10)
  • VSTO Development(10)
  • WEB(1)
  • 编译 反编译 IL 汇编(12)
  • 股票(6)
  • 设计模式(15)
  • 生活杂感(187)
  • 数据库相关(125)
  • 算法(46)
  • 统计分析(40)
  • 英语学习(9)

文章分类

  • DOTNET C#
  • IL 汇编 破解(1)
  • 生活相关(1)
  • 数据库相关(3)

Friends

Studying

  • Terrylee 设计模式系列

积分与排名

  • 积分 - 464448
  • 排名 - 177

最新评论

  • 1. Re:(转) lucene索引结构改进-支持单机十亿级别的索引的检索
  • 您好,您在文章中说单机版的lucene只能应对千万级,或百万级的索引,通过修改索引,能够支持10亿以上索引的检索。大概怎么修改索引或者Lucene能改称分布式版的吗?能给一个方向吗?求指点,谢谢
  • --LiuWei_Find
  • 2. Re:mysql存储过程在动态SQL内获取返回值
  • 个性签名点赞
  • --dark89757
  • 3. Re:蚂蚁变大象:浅谈常规网站是如何从小变大的zz
  • 我去,我居然头一次一口气看完2W+的文章,如醍醐灌顶,谢谢啊!
  • --Win_Lee
  • 4. Re:统计学中z分布、t分布、F分布及χ^2分布
  • 我理解确切的说, Z分布是把非标准的正态分布转成 N(0,1)的一种转换, 但在这种转换过程中, 总体的方差可能是未知的, 所以引出了后面若干分布
  • --爱知菜
  • 5. Re:linux grep命令
  • 写的不错 学习了
  • --tshare365

阅读排行榜

  • 1. linux grep命令(369471)
  • 2. linux打包压缩命令汇总(80566)
  • 3. 智力题及答案(79183)
  • 4. Linux文件夹文件创建、删除(68214)
  • 5. 不规则动词过去式和过去分词归纳(56084)

评论排行榜

  • 1. WinDbg学习资料整理下载(88)
  • 2. C#异步TCP通讯类库FlyTcpFramework(29)
  • 3. 常用工具总结(28)
  • 4. 不规则动词过去式和过去分词归纳(23)
  • 5. 动态控件、控件的生存周期和ViewState的运行细节(14)

转载于:https://www.cnblogs.com/onmyway20xx/p/4425335.html

linux grep命令总结相关推荐

  1. Linux grep 命令初步学习

    Linux grep 命令用于查找文件里符合条件的字符串. grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显 ...

  2. Linux grep命令、Linux cd命令、Linux pwd命令

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. Linux grep命令用于查找文件里符合条件的字符串. grep指令用于查找内容包含指定的范本样式 ...

  3. linux grep命令参数及用法详解---linux管道命令grep

    功能说明:查找文件里符合条件的字符串. 语 法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>] ...

  4. linux grep命令例子,详解linux grep命令

    本文介绍了linux grep命令,具体如下: 1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regu ...

  5. linux grep命令详解

    简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它 ...

  6. [转]linux grep命令

    转自:http://www.cnblogs.com/end/archive/2012/02/21/2360965.html 1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则 ...

  7. Linux grep命令分析以及C语言版本的实现

    1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全 ...

  8. Linux Grep 命令说明

    一. Grep 说明 grep (global search regular expression(RE) and print out the line)是一种强大的文本搜索工具,它能使用正则表达式搜 ...

  9. linux grep命令详解_Linux 上USB 调试神器lsusb命令详解

    大家好, 我是吉阿, 今天给大家介绍Linux上USB调试工具lsusb命令. ​ USB,是英文Universal Serial Bus(通用串行总线)的缩写,是一个外部总线标准,早期用于规范电脑与 ...

最新文章

  1. LeetCode简单题之增量元素之间的最大差值
  2. 面试官问:MySQL 的自增 ID 用完了,怎么办?
  3. 十点总结,为何 Linux 如此深得人心
  4. 在英特尔® 凌动™ 处理器上将 OpenGL* 游戏移植到 Android* (第一部分)
  5. 第78课 通力合作的100个数
  6. 后盾网php多少钱_亿多星全脑开发招代理多少钱@山东聊城网
  7. 灰度实战(一):Apollo配置中心(1)
  8. RUP大讲堂(第五讲)-基于用例的需求工程技术
  9. Linux复习-C程序编译工具
  10. unity 中画布随相机视野实时变化
  11. 微型计算机原理第三版第五章答案,微机原理第五章习题答案
  12. 推荐测温软件SpeedFan 4.32
  13. 网易邮箱(126/163):授权码获取攻略
  14. dw设置html背景,Dreamweaver默认浏览器怎么设置
  15. 【深度学习】DCGAN实现动漫头像生成详细说明
  16. HDU 1874 畅通工程续 Floyd
  17. 8086的两种工作模式_8086系统中最小模式与最大模式两种工作方式的主要区别是什么?...
  18. 渐进式量产进阶!卡车自动驾驶进入商业化新周期
  19. 中国美妆市场消费潜力与销售渠道研究报告2022版
  20. Android P 按键音分析

热门文章

  1. 我对计算机的看法英语作文,我对网络的看法英语作文
  2. 【Python入门】你值得拥有的这八个实用工具安装包与实战项目
  3. 祝福互动html页面,祝福.html
  4. 为什么重新new两个线程线程号相同_面试官每次问我关于线程间通信方法,我都回答的很糟糕...
  5. 电芯容量在前期循环中容量增加_如何设计提高电池电芯的容量密度?
  6. 如何用matlab读取npz文件,Python Numpy中数据的常用的保存与读取方法
  7. 初识C语言---(2)
  8. 深度优先搜索算法(有向图和无向图)
  9. 组合计数 ---- 2020 icpc 上海 The Journey of Geor Autumn(思维划分问题计数+预处理优化)
  10. vivo是安卓手机吗_vivo手机更新安卓9.0!4款产品尝鲜:有你的吗?