grep命令

  • grep
grep是通用正则表达式分析程序(General Regular Expression Parser)的缩写。
grep命令可以在它的输入中搜索指定的字符串模式(Pattern)。grep命令的输出包含输入中指定的字符串模式的行。
grep命令的一般格式:
grep [option] pattern file
 
  • grep命令常用开关
 

 

正则表达式

何为正则表达式:描述具有某种特征的字符串的表达式。
正则表达式由普通字符与特殊字符(元字符)
 
  • 基本元字符集
 
' '和" ",单引号和双引号的区别
实例:查找'\'
grep -n '\\' t1.txt (\)
grep -n "\\" t1.txt grep:Trailing backslash
grep -n "\\\\" t1.txt
 
剖析:
  双引号只能阻止部分特殊的字符:()、[]、{}
  不能阻止shell对 ‘\’ 的解析,所以grep -n "\\" t1.txt 送给grep的是‘\’
 
 
  • 扩展元字符集
 

 

grep中使用正则表达式

  • grep命令示例
grep ^public t1.txt       //在每行的开始对public字符进行匹配
grep public$ t1.txt        // 在每行的末尾对public字符进行匹配
grep -n ^$ t1.txt        // 查找空行
grep -n ^.$ t1.txt        // 查找只有一个字符的行
grep -n '\<public' t1.txt    // 在单词public的开始进行匹配
grep -n 'public\>' t1.txt   // 在单词public的末尾进行匹配
grep -n "\\\\" t1.txt     // 查找'\'
grep -n '\\' t1.txt      // 查找'\'
  注意:单引号'' 和双引号""的区别
 
查询多个文件,可以使用通配符 "*"
  grep public *.txt
 
反向匹配
  ps aux | grep "ssh" | grep -v "grep"   // -v 反向匹配,即找出所有不包含“grep”的项
 
递归搜索目录中的所有文件:-r
  grep -rn telnet /etc   // -r 递归搜索,即找出目录/etc下所有包含内容telnet的文件行
 
返回匹配到的文件的名称
  grep -ln clear *.txt   // -l 返回匹配到的文件的名称
 

vi中使用正则表达式

  • 正则表达式在vi中的使用例子
在当前行中删除从aa到zz的所有字符。
  :s/aa.*zz//      .*:表示任意的0个或多个任意字符
 

在整个文件用and代替所有的&字符
  :1,$s/&/and/g
 

在每一行的行首插入字符串new
  :1,$s/^/new/g
 

在第2行到第5行的行尾插入字符串@@
  :2,5s/$/@@/g
 
去掉行首的所有数字字符
  :s/^[0-9][0-9]*//
 

  • 稍复杂的一个例子

foo(10,7,2) foo(7,10,2)
foo(x+13,y-2,10) foo(y-2,x+13,10)
foo(bar(8),x+y+z,5) foo(x+y+z,bar(8),5)
:1,$s/foo(\([^,]*\),\([^,]*\),\([^)]*\))/foo(\2,\1,\3)/g
[^,] 除了逗号之外的任何字符
[^,]* 0或者多个非逗号字符
\([^,]*\) 将这些非逗号字符标记为\1,这样可以在之后的替换模式表达式中引用它
\([^,]*\), 我们必须找到0或者多个非逗号字符后面跟着一个逗号,并且非逗号字符那部分要标记出来以备后用。
 

7. grep的更多相关文章

  1. grep 查找bash脚本中的注释代码

    出于安全性的考虑,不建议在bash脚本中注释掉不使用的代码.也就是说如果某段代码不使用了,那么应该删除掉,而不是简单地注释掉.假如你突然意识到这一点,而以前并没有遵从这个原则,现在需要找出脚本中的注释 ...

  2. linux grep命令

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

  3. linux中grep的应用

    h3 { color: rgb(255, 255, 255); background-color: rgb(30,144,255); padding: 3px; margin: 10px 0px } ...

  4. Linux命令-文件文本操作grep

    文件文本操作 grep 在文件中查找符合正则表达式条件的文本行 cut 截取文件中的特定字段 paste 附加字段 tr 字符转换或压缩 sort 调整文本行的顺序,使其符合特定准则 uniq 找出重 ...

  5. 4-4 grep及正则表达式

    1. grep:Globally search a Regular Expression and Print:根据模式搜索文本,并将符合模式的文本行显示出来 pattern:文本字符和正则表达式的元字 ...

  6. grep 命令过滤配置文件中的注释和空行

    grep 用法 Usage: grep [OPTION]... PATTERN [FILE]... Search for PATTERN in each FILE or standard input. ...

  7. sed awk grep三剑客常用

    sed的常用用法: awk的常用用法: grep的常用用法: 除了列出符合行之外,并且列出后10行. grep -A 10 Exception kzfinance-front.log 除了列出符合行之 ...

  8. awk命令和grep命令的使用

    1.遇到需求:用ping命令去检测系统网络延迟 跑 ping baidu.com -c 3,想要直接得到平均延迟. ping baidu.com -c 3 | grep rtt | awk -F \/ ...

  9. grep 命令

    简单介绍:grep命令是用于分析一行信息,若当中有我们所需要的信息,就将该行取出来. 语法结构:grep [-acinv] [--color=auto] '查找关键字' #{filename} -a: ...

  10. 使用git grep进行git搜索

    1.git grep foo 会自动map所有包含foo的文件 2.git grep -n foo  显示行号 3.git grep --name-only foo 只显示文件名 4.git grep ...

随机推荐

  1. Golang对方法接收者变量的自动“取引用”和“解引用”

    原文:https://blog.csdn.net/u014633283/article/details/83826413 --------------------------------------- ...

  2. CentOS7 内核优化 修改参数

    一:内核简介 内核是操作系统最基本的部分.它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间. 内核的分类可分为单内核和 ...

  3. integer == 号问题

    integer a=123 integer b=123 integer c=250 integer d=250 a==b(true) c==d (false) Integer中把-128-127 缓存 ...

  4. solrcloud2

    分片的原因 由于底层Lucene的限制,每个solr索引中包含的文档数不能超过231个,大约是21亿个.但是solr分片一般不是基于这个的原因,因为一般没有到这个峰值的之后,solr的各中性能问题就暴 ...

  5. poj2942 Knights of the Round Table[点双+二分图染色]

    首先转化条件,把无仇恨的人连边,然后转化成了求有哪些点不在任何一个奇环中. 一个奇环肯定是一个点双,所以想到处理出所有点双,但是也可能有的点双是一个偶环,有的可能是偶环和奇环混杂,不好判. 考察奇环性 ...

  6. Centos6.5 下安装配置Apache+PHP+Mysql环境

    1.准备工作 # yum -y update && yum -y install vim make cmake gcc gcc-c++ bison bison-devel ncurse ...

  7. Java笔记(基础第三篇)

    面向对象的特点: 封装 继承 多态 类的构造方法 如果在类中定义的构造方法都不是无参的构造方法,则编译器不会为类设置一个默认的无参构造方法,当视图调用无参构造方法实例化一个对象时,编译器会报错,所以只 ...

  8. 使用PHP读取PHP文件并输出到屏幕上

    看完这篇文章,你一定忘不掉htmlentities的用法 背景 今天有个需求,就是一个PHP开发的网址中,有一个页面可以提供给用户修改已经存在的PHP文件中的代码,并POST到服务器上保存. 每次将读 ...

  9. laravel事件监听器

    在EventServiceProvide文件里注册事件和监听 protected $listen = [ 'App\Events\SendPhoneCodeEvent' => [ 'App\Li ...

  10. IDEA2019.1.3的安装和破解

    上一篇文章我有写过我会尝试安装IDEA(这玩意儿收费啊!),倘若尝试成功以后都会用它编译,很幸运,我安装成功了,所以今天这篇文章我来写安装和破解方法. IDEA界面: ​ 首先我们访问官方网站:htt ...