Linux grep命令用法

标签: Linux社区 | 发表时间:2013-06-20 08:00 | 作者:秩名
出处:http://www.kuqin.com/jingyan/

grep — print lines matching a pattern (将符合样式的该行列出)

◎语法: grep [options]
PATTERN [FILE...]
grep用以在file内文中比对相对应的部分,或是当没有指定档案时,
由标准输入中去比对。 在预设的情况下,grep会将符合样式的那一行列出。

此外,还有两个程序是grep的变化型,egrep及fgrep。
其中egrep就等同于grep -E ,fgrep等同于grep -F 。

◎参数
1.-A NUM,–after-context=NUM
除了列出符合行之外,并且列出后NUM行。

ex:  $ grep-A 1panda file
(从file中搜寻有panda样式的行,并显示该行的后1行)

2.-a或–text
grep原本是搜寻文字文件,若拿二进制的档案作为搜寻的目标,
则会显示如下的讯息:Binary file 二进制文件名 matches然后结束。

若加上-a参数则可将二进制档案视为文本文件搜寻,
相当于–binary-files=text这个参数。

ex:   (从二进制档案mv中去搜寻panda样式)
(错误!!!)
$ greppandamv
Binary file mv matches
(这表示此档案有match之处,详见–binary-files=TYPE )
$
(正确!!!)
$ grep-apandamv

3.-B NUM,–before-context=NUM
与 -A NUM 相对,但这此参数是显示除符合行之外
并显示在它之前的NUM行。

ex:   (从file中搜寻有panda样式的行,并显示该行的前1行)
$ grep-B 1panda file

4.-C [NUM], -NUM, –context[=NUM]
列出符合行之外并列出上下各NUM行,默认值是2。

ex:   (列出file中除包含panda样式的行外并列出其上下2行)
(若要改变默认值,直接改变NUM即可)
$ grep-C[NUM]panda file

5.-b, –byte-offset
列出样式之前的内文总共有多少byte ..

ex: $ grep-bpanda file
显示结果类似于:
  0:panda
66:pandahuang
123:panda03

6.–binary-files=TYPE
此参数TYPE预设为binary(二进制),若以普通方式搜寻,只有2种结果:
1.若有符合的地方:显示Binary file 二进制文件名 matches
2.若没有符合的地方:什么都没有显示。

若TYPE为without-match,遇到此参数,
grep会认为此二进制档案没有包含任何搜寻样式,与-I参数相同。

若TPYE为text, grep会将此二进制文件视为text档案,与-a参数相同。

Warning: –binary-files=text 若输出为终端机,可能会产生一些不必要的输出。

7.-c, –count
不显示符合样式行,只显示符合的总行数。
若再加上-v,–invert-match,参数显示不符合的总行数。

8.-d ACTION, –directories=ACTION
若输入的档案是一个资料夹,使用ACTION去处理这个资料夹。
预设ACTION是read(读取),也就是说此资料夹会被视为一般的档案;
若ACTION是skip(略过),资料夹会被grep略过:
若ACTION是recurse(递归),grep会去读取资料夹下所有的档案,
此相当于-r 参数。

9. -E, –extended-regexp
采用规则表示式去解释样式。

10. -e PATTERN, –regexp=PATTERN
把样式做为一个partern,通常用在避免partern用-开始。

11. -f FILE, –file=FILE
事先将要搜寻的样式写入到一个档案,一行一个样式。
然后采用档案搜寻。
空的档案表示没有要搜寻的样式,因此也就不会有任何符合。

ex: (newfile为搜寻样式文件)
$ grep-fnewfile file

12. -G, –basic-regexp
将样式视为基本的规则表示式解释。(此为预设)

13. -H, –with-filename
在每个符合样式行前加上符合的文件名称,若有路径会显示路径。

ex: (在file与testfile中搜寻panda样式)
$ grep-Hpanda file ./testfile
file:panda
./testfile:panda
$

14. -h, –no-filename
与-H参数相类似,但在输出时不显示路径。

15. –help
产生简短的help讯息。

16. -I
grep会强制认为此二进制档案没有包含任何搜寻样式,
与–binary-files=without-match参数相同。

ex: $ grep-Ipanda mv

17. -i, –ignore-case
忽略大小写,包含要搜寻的样式及被搜寻的档案。

ex: $ grep-ipanda mv

18. -L, –files-without-match
不显示平常一般的输出结果,反而显示出没有符合的文件名称。

19. -l, –files-with-matches
不显示平常一般的输出结果,只显示符合的文件名称。

20. –mmap
如果可能,使用mmap系统呼叫去读取输入,而不是预设的read系统呼叫。
在某些状况,–mmap 能产生较好的效能。 然而,–mmap
如果运作中档案缩短,或I/O 错误发生时,
可能造成未定义的行为(包含core dump),。

21. -n, –line-number
在显示行前,标上行号。

ex: $ grep-npanda file
显示结果相似于下:
行号:符合行的内容

22. -q, –quiet, –silent
不显示任何的一般输出。请参阅-s或–no-messages

23. -r, –recursive
递归地,读取每个资料夹下的所有档案,此相当于 -d recsuse 参数。

24. -s, –no-messages
不显示关于不存在或无法读取的错误讯息。

小注: 不像GNU grep,传统的grep不符合POSIX.2协议,
因为缺乏-q参数,且他的-s 参数表现像GNU grep的 -q 参数。
Shell Script倾向将传统的grep移植,避开-q及-s参数,
且将输出限制到/dev/null。

POSIX: 定义UNIX及UNIX-like系统需要提供的功能。

25. -V, –version
显示出grep的版本号到标准错误。
当您在回报有关grep的bugs时,grep版本号是必须要包含在内的。

26. -v, –invert-match
显示除搜寻样式行之外的全部。

27. -w, –word-regexp
将搜寻样式视为一个字去搜寻,完全符合该”字”的行才会被列出。

28. -x, –line-regexp
将搜寻样式视为一行去搜寻,完全符合该”行”的行才会被列出。

注意:由于Wordpress字符转化问题,部分命令里面的两个半角减号被替代为一个圆角减号。

正在加载推荐文章
Linux命令vmstat介绍
SSH基础教程(Linux常用命令)
Linux tail 命令详解
Linux操作系统下运行命令时CTRL+Z的作用
Linux shell命令:用 !$ 防止误操作
  • 默认表情
  • 阿狸
  • 每个程序员都应该知道的8个Linux命令
  • Linux下查看Apache的请求数
  • 默认表情
  • 阿狸
www.kuqin.com
数据正在加载中...
无觅相关文章插件,快速提升流量

[ comments ]

相关 [linux grep 命令] 推荐:

Linux grep命令用法

- - 酷勤网-挖经验 [expanded by feedex.net]
grep — print lines matching a pattern (将符合样式的该行列出). ◎语法: grep [options]. grep用以在file内文中比对相对应的部分,或是当没有指定档案时,. 在预设的情况下,grep会将符合样式的那一行列出. 此外,还有两个程序是grep的变化型,egrep及fgrep.

linux命令终极系列(grep)

- JingSQ - C++博客-首页原创精华区
        说明:从test.txt中搜寻有aa样式的行,并显示该行的后1行.         说明:从test.txt中搜寻有aa样式的行,并显示该行的前1行.         说明:列出file中除包含panda样式的行外并列出其上下2行.     (4) -a或--test.        说明:如果不加-a,找到后,一般会显示“匹配到二进制文件 tp_smapi-0.40.tgz”,找不到.

linux grep 查看大日志文件

- - 掘金 后端
这是我参与更文挑战的第7天,活动详情查看:. 如果❤️我的文章有帮助,欢迎点赞、关注. 这是对我继续技术创作最大的鼓励. linux grep 查看大日志文件. 今天隔离还在继续,在家办公. mysql 机器io/负载上升的预警,异常发生在. 15:45 ~ 16:00 之间. 为了事后为了查明原因,需要翻看慢查询日志.

Linux wget命令

- - CSDN博客推荐文章
wget是linux最常用的下载命令, 一般的使用方法是: wget + 空格 + 要下载文件的url路径. 例如: # wget  http://www.linuxsense.org/xxxx/xxx.tar.gz. 简单说一下-c参数, 这个也非常常见, 可以断点续传, 如果不小心终止了, 可以继续使用命令接着下载.

Linux iostat命令

- - CSDN博客系统运维推荐文章
iostat用于输出CPU和磁盘I/O相关的统计信息. . iostat [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ device [. iostat各个参数说明:. -c 仅显示CPU统计信息.与-d选项互斥. -d 仅显示磁盘统计信息.与-c选项互斥.

linux命令locate

- - 操作系统 - ITeye博客
    locate命令其实是"find -name"的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息. Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件.

linux常用命令

- - 梦幻主页的博客
1.# 表示权限用户(如:root),$ 表示普通用户.   开机提示:Login:输入用户名.   password:输入口令   用户是系统注册用户成功登陆后,可以进入相应的用户环境.   退出当前shell,输入:exit. 2.useradd netseek 添加一个netseek用户.   passwd netseek  给netseek这个用户设置密码.

linux下vi命令大全

- - CSDN博客互联网推荐文章
linux下vi命令大全,能掌握80%也即基本够用了. vi filename :打开或新建文件,并将光标置于第一行首. vi +n filename :打开文件,并将光标置于第n行首. vi + filename :打开文件,并将光标置于最后一行首. vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处.

LINUX 命令大汇总

- - 操作系统 - ITeye博客
df 是来自于coreutils 软件包,系统安装时,就自带的;我们通过这个命令可以查看磁盘的使用情况以及文件系统被挂载的位置;. Filesystem容量 已用 可用 已用% 挂载点. 我们从中可以看到,系统安装在/dev/hda8 ;还有一个56G的磁盘分区/dev/sda1挂载在 /mnt/sda1中;.

Linux netstat命令详解

- - 操作系统 - ITeye博客
Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等. 执行netstat后,其输出结果为. 从整体上看,netstat的输出结果可以分为两个部分:.