仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 783|回复: 12
打印 上一主题 下一主题

[其他Linux] Linux教程之天天一个linux命令(39):grep 命令仓酷云

[复制链接]
分手快乐 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:22:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
初学阶段只要把上课时候学习过的命令练熟就可以了.单靠学习各种命令而成为高手是不可能的。
Linux体系中grep命令是一种壮大的文本搜刮工具,它能利用正则表达式搜刮文本,并把婚配的行打印出来。grep全称是GlobalRegularExpressionPrint,暗示全局正则表达式版本,它的利用权限是一切用户。
grep的事情体例是如许的,它在一个或多个文件中搜刮字符串模板。假如模板包含空格,则必需被援用,模板后的一切字符串被看做文件名。搜刮的了局被送到尺度输入,不影响原文件内容。
grep可用于shell剧本,由于grep经由过程前往一个形态值来讲明搜刮的形态,假如模板搜刮乐成,则前往0,假如搜刮不乐成,则前往1,假如搜刮的文件不存在,则前往2。我们使用这些前往值便可举行一些主动化的文本处置事情。
1.命令格局:
grep[option]patternfile
2.命令功效:
用于过滤/搜刮的特定字符。可以使用正则表达式能多种命令共同利用,利用上非常天真。
3.命令参数:
-a--text#不要疏忽二进制的数据。
-A<显现行数>--after-context=<显现行数>#除显现切合范本款式的那一列以外,并显现该行以后的内容。
-b--byte-offset#在显现切合款式的那一行之前,标示出该行第一个字符的编号。
-B<显现行数>--before-context=<显现行数>#除显现切合款式的那一行以外,并显现该行之前的内容。
-c--count#盘算切合款式的列数。
-C<显现行数>--context=<显现行数>或-<显现行数>#除显现切合款式的那一行以外,并显现该行之前后的内容。
-d<举措>--directories=<举措>#当指定要查找的是目次而非文件时,必需利用这项参数,不然grep指令将报答信息并中断举措。
-e<范本款式>--regexp=<范本款式>#指定字符串做为查找文件内容的款式。
-E--extended-regexp#将款式为延长的一般暗示法来利用。
-f<划定规矩文件>--file=<划定规矩文件>#指定例则文件,其内容含有一个或多个划定规矩款式,让grep查找切合划定规矩前提的文件内容,格局为每行一个划定规矩款式。
-F--fixed-regexp#将款式视为流动字符串的列表。
-G--basic-regexp#将款式视为一般的暗示法来利用。
-h--no-filename#在显现切合款式的那一行之前,不标示该行所属的文件称号。
-H--with-filename#在显现切合款式的那一行之前,暗示该行所属的文件称号。
-i--ignore-case#疏忽字符巨细写的不同。
-l--file-with-matches#列出文件内容切合指定的款式的文件称号。
-L--files-without-match#列出文件内容不切合指定的款式的文件称号。
-n--line-number#在显现切合款式的那一行之前,标示出该行的列数编号。
-q--quiet或--silent#不显现任何信息。
-r--recursive#此参数的效果和指定“-drecurse”参数不异。
-s--no-messages#不显现毛病信息。
-v--revert-match#显现不包括婚配文本的一切行。
-V--version#显现版本信息。
-w--word-regexp#只显现全字切合的列。
-x--line-regexp#只显现全列切合的列。
-y#此参数的效果和指定“-i”参数不异。
4.划定规矩表达式:
grep的划定规矩表达式:
^#锚定行的入手下手如:^grep婚配一切以grep开首的行。
$#锚定行的停止如:grep$婚配一切以grep开头的行。
.#婚配一个非换行符的字符如:gr.p婚配gr后接一个恣意字符,然后是p。
*#婚配零个或多个先前字符如:*grep婚配一切一个或多个空格后紧跟grep的行。
.*#一同用代表恣意字符。
[]#婚配一个指定局限内的字符,如[Gg]rep婚配Grep和grep。
[^]#婚配一个不在指定局限内的字符,如:[^A-FH-Z]rep婚配不包括A-R和T-Z的一个字母开首,紧跟rep的行。
(..)#标志婚配字符,如(love),love被标志为1。
<#锚订单词的入手下手,如:<grep婚配包括以grep开首的单词的行。
>#锚订单词的停止,如grep>婚配包括以grep开头的单词的行。
x{m}#反复字符x,m次,如:0{5}婚配包括5个o的行。
x{m,}#反复字符x,最少m次,如:o{5,}婚配最少有5个o的行。
x{m,n}#反复字符x,最少m次,未几于n次,如:o{5,10}婚配5--10个o的行。
w#婚配笔墨和数字字符,也就是[A-Za-z0-9],如:Gw*p婚配以G后跟零个或多个笔墨或数字字符,然后是p。
W#w的反置情势,婚配一个或多个非单词字符,如点号句号等。
b#单词锁定符,如:bgrepb只婚配grep。
POSIX字符:
为了在分歧国度的字符编码中坚持一至,POSIX(ThePortableOperatingSystemInterface)增添了特别的字符类,如[:alnum:]是[A-Za-z0-9]的另外一个写法。要把它们放到[]号内才干成为正则表达式,如[A-Za-z0-9]或[[:alnum:]]。在linux下的grep除fgrep外,都撑持POSIX的字符类。
[:alnum:]#笔墨数字字符
[:alpha:]#笔墨字符
[:digit:]#数字字符
[:graph:]#非空字符(非空格、把持字符)
[:lower:]#小写字符
[:cntrl:]#把持字符
[:print:]#非空字符(包含空格)
[:punct:]#标点标记
[:space:]#一切空缺字符(新行,空格,制表符)
[:upper:]#年夜写字符
[:xdigit:]#十六进制数字(0-9,a-f,A-F)
5.利用实例:
实例1:查找指定历程
命令:
ps-ef|grepsvn
输入:
[root@localhost~]#ps-ef|grepsvn
root494310Dec05?00:00:00svnserve-d-r/opt/svndata/grape/
root1686716838019:53pts/000:00:00grepsvn
[root@localhost~]#
申明:
第一笔记录是查找出的历程;第二条了局是grep历程自己,并不是真正要找的历程。
实例2:查找指定历程个数
命令:
ps-ef|grepsvn-c
ps-ef|grep-csvn
输入:
[root@localhost~]#ps-ef|grepsvn-c
2
[root@localhost~]#ps-ef|grep-csvn
2
[root@localhost~]#
申明:
实例3:从文件中读取关头词举行搜刮
命令:
cattest.txt|grep-ftest2.txt
输入:
[root@localhosttest]#cattest.txt
hnlinux
peida.cnblogs.com
ubuntu
ubuntulinux
redhat
Redhat
linuxmint
[root@localhosttest]#cattest2.txt
linux
Redhat
[root@localhosttest]#cattest.txt|grep-ftest2.txt
hnlinux
ubuntulinux
Redhat
linuxmint
[root@localhosttest]#
申明:
输入test.txt文件中含有从test2.txt文件中读掏出的关头词的内容行
实例3:从文件中读取关头词举行搜刮且显现行号
命令:
cattest.txt|grep-nftest2.txt
输入:
[root@localhosttest]#cattest.txt
hnlinux
peida.cnblogs.com
ubuntu
ubuntulinux
redhat
Redhat
linuxmint
[root@localhosttest]#cattest2.txt
linux
Redhat
[root@localhosttest]#cattest.txt|grep-nftest2.txt
1:hnlinux
4:ubuntulinux
6:Redhat
7:linuxmint
[root@localhosttest]#
申明:
输入test.txt文件中含有从test2.txt文件中读掏出的关头词的内容行,并显现每行的行号
实例5:从文件中查找关头词
命令:
greplinuxtest.txt
输入:
[root@localhosttest]#greplinuxtest.txt
hnlinux
ubuntulinux
linuxmint
[root@localhosttest]#grep-nlinuxtest.txt
1:hnlinux
4:ubuntulinux
7:linuxmint
[root@localhosttest]#
申明:
实例6:从多个文件中查找关头词
命令:
greplinuxtest.txttest2.txt
输入:
[root@localhosttest]#grep-nlinuxtest.txttest2.txt
test.txt:1:hnlinux
test.txt:4:ubuntulinux
test.txt:7:linuxmint
test2.txt:1:linux
[root@localhosttest]#greplinuxtest.txttest2.txt
test.txt:hnlinux
test.txt:ubuntulinux
test.txt:linuxmint
test2.txt:linux
[root@localhosttest]#
申明:

使用gcc或g++进行编译,使用gdb进行调试;
活着的死人 该用户已被删除
沙发
发表于 2015-1-20 22:54:35 | 只看该作者
选择交流平台,如QQ群,网站论坛等。
莫相离 该用户已被删除
板凳
发表于 2015-1-22 12:55:18 | 只看该作者
甚至目前许多应用软件都是基于它的。可是没有哪一个系统是十分完美的。
灵魂腐蚀 该用户已被删除
地板
发表于 2015-1-31 06:50:18 | 只看该作者
学习Linux系统在服务中的配置方法及使用方法。Linux在服务器中应用相当广,应对常用的apache,samba,ftp等服务器基本配置清楚了解。[重点,应巩固学习]
若相依 该用户已被删除
5#
发表于 2015-2-6 01:35:53 | 只看该作者
我是学习嵌入式方向的,这学期就选修了这门专业任选课。
再现理想 该用户已被删除
6#
发表于 2015-2-14 20:27:55 | 只看该作者
任何一个叫做操作系统的东西都是这样子构成的:内核+用户界面+一般应用程序。
精灵巫婆 该用户已被删除
7#
发表于 2015-2-21 20:10:09 | 只看该作者
现在的linux操作系统如redhat,难点,红旗等,都是用这么一个内核,加上其它的用程序(包括X)构成的。
简单生活 该用户已被删除
8#
发表于 2015-2-26 08:40:28 | 只看该作者
掌握在Linux系统中安装软件,在安装Linux工具盘后大致日常所需的软件都会有,一般网络提供下载的软件都会有安装说明。
再见西城 该用户已被删除
9#
发表于 2015-3-4 01:06:17 | 只看该作者
主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统安全,针对不同层次的人的详尽文档,仔细阅读文档后40%问题都可在此解决。
柔情似水 该用户已被删除
10#
发表于 2015-3-10 20:37:20 | 只看该作者
要增加自己Linux的技能,只有通过实践来实现了。所以,赶快找一部计算机,赶快安装一个Linux发行版本,然后进入精彩的Linux世界,相信对于你自己的Linux能力必然大有斩获。
变相怪杰 该用户已被删除
11#
发表于 2015-3-11 12:43:41 | 只看该作者
如果上面的措施没有解决问题,此时你就需要Linux社区的帮助了。 Linux的使用者一般都是专业人士,他们有着很好的电脑背景且愿意协助他人。
老尸 该用户已被删除
12#
发表于 2015-3-18 11:31:54 | 只看该作者
一定要养成在命令行下工作的习惯,要知道X-window只是运行在命令行模式下的一个应用程序。在命令行下学习虽然一开始进度较慢。
若天明 该用户已被删除
13#
发表于 2015-3-25 19:22:15 | 只看该作者
编程学习及开发,Linux是免费,开源的操作系统,并且可开发工具相当多,如果您支持自由软件,一定要同广大热爱自由软件人士一同为其不懈努力。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-16 10:29

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表