彻底理解grep命令

彻底理解grep命令
叶无风0人评论118人阅读2019-03-18 10:28:30
彻底理解grep命令
1.1 grep命令简介
grep (global search regular expression(RE) and print out the line,是一种强大的文本搜索工具,它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹配行。

1.2 grep工作过程
grep命令将逐行读入文件内容至模式空间,按照给定的pattern进行匹配。

如果该行内容能够被指定的pattern匹配,复制该行内容到标准输出,并且读入文件的下一行。
如果该行内容不能被指定的条件匹配,删除此行,读取下一行内容。
对于匹配结果来说,grep默认工作在贪婪模式下,会对符合匹配结果的字符串尽可能长的匹配。匹配的一行内容中可能出现整个字符串是不符合匹配结结果的,但这个字符串部分内容又能够被匹配到。
1.3 grep语法格式:
grep [options] pattern input_file_names
选项可以有零个或多个。

--color=auto: 对匹配到的文本着色显示
-m # 匹配#次后停止
-v 显示不被pattern匹配到的行
-I 忽略字符大小写
-n 显示匹配的行号
-c 统计匹配的行数
-o 仅显示匹配到的字符串
-q 静默模式,不输出任何信息
-A # after, 后#行
-B # before, 前#行
-C # context, 前后各#行
-e 实现多个选项间的逻辑or关系
-w 匹配整个单词
-E 使用扩展正则表达式
-F 相当于fgrep,不支持正则表达式
-f file 根据模式文件处理

1.4 grep示例
grep查找ssh相关进程,结果中为什么存在有grep进程出现呢?

[19:58:31 [email protected] /]#ps aux | grep sshd
root 6971 0.0 0.2 112756 4304 ? Ss 08:43 0:00 /usr/sbin/sshd -D
root 7393 0.0 0.2 160848 5732 ? Ss 08:44 0:09 sshd: [email protected]/1,pts/2
root 15188 0.0 0.0 112712 976 pts/1 S+ 20:00 0:00 grep --color=auto sshd
这是由于管道实现的是进程之间的通信,管道右边进程在ps进程启动后也会启动,它们之间的进程存在交集状态。

grep会对行中符合匹配标准的结果尽可能长的匹配,最终结果可能会发现整个字符串是不符合匹配条件的,但这个字符串部分是符合的。

[20:25:07 [email protected] tmp]#cat reg.txt
12 goo oogle google
ggole goo00le googlegoogl
root root googlelegoo rot
rotroot rootrot

[20:31:22 [email protected] tmp]#egrep "rot|root" reg.txt
root root googlelegoo rot
rotroot rootrot

原文地址:https://blog.51cto.com/14436237/2419431

时间: 2024-10-13 22:59:29

彻底理解grep命令的相关文章

深入理解Linux中的grep命令

介绍 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户. grep [-acinv] [--color=auto] '查找字符串' filename 参数: -a :将binary文件以text文件的方式查找数据 -c :计算找到‘查找字符串'的次数 -i :忽略大小写的区别,即把大小写视为相同 -n :顺便输出行号

grep命令以及正则表达式,算数运算.

最近一段时间一直在学习算术运算和正则表达式以及条件判断,连续看了四五遍,基本概念已经能够搞清楚了,实际操作中容易把正则表达式和算术运算以及条件判断混淆.看来还是要勤加联系.今天终于是有勇气来总结这两周的学习.在这之前,因为在练习这些逻辑概念性的知识经常会用到grep命令.首先介绍一下grep. 格式:grep [options] 'PATTERN' file,... grep: 文本搜索工具,根据用户指定的文本模式对目标文件进行逐行搜索,显示文件中能够被模式所匹配到的行. 模式PATTERN:指

Linux入门基础之grep命令详解及正则表达式

grep命令是linux下经常使用的命令之一,能根据用户指定的模式(pattern)对文本进行过滤,显示出匹配到的行.其命令格式为: grep [OPTIONS] PATTERN [FILE] 例如:我们要查找网卡0中配置的IP地址(该文件路径: /etc/sysconfig/network-scripts/ifcfg-eth0)---grep 'IPADDR' /etc/sysconfig/network-scripts/ifcfg-eth0 (注:alias grep='grep --col

Linux操作系统基础解析之(五)——grep命令家族及正则表达式初识

grep号称文本处理三剑客之一,虽然说是三剑客中功能最少也是最简单的,但仍然不能小觑.  grep的全称为:Global search REgular expression and Print out the line,即:全面查找正则表达式并将匹配的行显示出来. 那么这里面出现了一个新的概念:正则表达式.那么什么是正则表达式呢? 正则表达式,又称正规表示法.常规表示法英语:(Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式

grep命令中文手册(info grep翻译)

body { font: 13.34px helvetica, arial, freesans, clean, sans-serif; color: black; line-height: 1.4em; padding: 0.7em } p { margin: 1em 0; line-height: 1.5em } pre,code { font: 12px Monaco, "Courier New", "DejaVu Sans Mono", "Bitst

Linux     grep命令,正则表达式

grep命令及正则表达式 grep命令 grep , egrep , fgrep grep,sed,awk 文本处理三剑客 grep: Global search REgular expression and Print out the line;全面查找正则表达式并将匹配到的行显示出来; 正则表达式 正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用;许多程序设计语言都支持利用正则表达式进行字符串操作; 主流的正则引擎又分为三类:DFA;传统型NFA;POSIX NFA; DFA

正则表达式和grep命令的用法

正则表达式和grep命令的用法: 一.正则表达式: 正则表达式(也称为regular Expression,简称RE)就是由普通字符(例如字符a到z)以及特殊字符(称之为元字符)组成的文字模式. 该模式描述在查找文字主体时待匹配的一个或多个字符串. 正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配.简单的说,正则表示式就是处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表示通过一些特殊符号的辅助,可以让使用者轻易的达到搜寻/删除/取代某特定字符串的处理程序.vim.gr

【转】每天一个linux命令(39):grep 命令

原文网址:http://www.cnblogs.com/peida/archive/2012/12/17/2821195.html Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户. grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板.如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名.搜索的

find 命令和grep命令的区别

对于find命令和grep命令两者之间的区别,大家可以这样记忆. find命令是用来查找文件的,而grep查找的是文件内容. 另外,find是完全匹配(通配符),而grep是包含匹配(正则表达式)