三剑客:grep  sed  awk

  grep:文本行过滤工具

  sed:  文本行编辑器(流编辑器)

  awk: 报告生成器,输出格式化

grep包含三个命令:

  grep egrep fgrep 。他们是用来进行行模式匹配的

  egrep:=grep -E  使用扩展的正则表达式进行匹配

  fgrep =fast grep 只使用文件通配符进行匹配

  *grep默认使用正则表达式进行文本匹配

grep的用法:

  grep [option] …PATTERN [filename]

grep的常用选项:

-E

支持使用扩展正则表达式

-P

使用perl语言的正则表达式引擎进行搜索(每一种语言的)

-I

忽略大小写

-o

仅仅输出匹配的内容(默认输出的是行)

-v

进行反选

--color=auto

语法着色

-n

显示行号

pattern--正则表达式:  

  作用:通过一些特殊字符,来表示一类字符内容,然后交给前面的命令来执行。如果使用特殊本身含义,就需要\进行转义。

  1.字符匹配:

    . 任意一个字符 ?

    [] 范围内的任意一个字符

    [^]范围外的任意一个字符

    字符类:[:digit:]  [:alnum:]  [:alpha:]  [:lower:] [:upper:] [:space:] [:punct:]

  2.次数匹配

    *   匹配前面的字符0次到n次

    \?匹配前面的字符0次到1次

    + 匹配前面的字符1次到n次

    \{m\}匹配前面的中字符m次

    \{m,n\}匹配前面的字符m到n次

    \{0,n\}匹配前面的字符0到n次

    \{m,\}  匹配前面的字符至少m次

  3.位置锚定

    ^  锚定行首

    $  锚定行尾

    \b 锚定词首和锚定词尾

    \>  锚定词尾

    <\ 锚定词首

  4.分组

    abc*  abccccc abc我们要看成一个整体

    \(\)  示例:\(abc\)*  abcabcabc  abcccc

    **分组特性:默认情况下,linux系统会为分组指定变量,,变量的表示形式\1\2\3…………

    (((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3})

Shell脚本grep命令的更多相关文章

  1. linux 执行远程linux上的shell脚本或者命令以及scp 上传文件到ftp--免密码登陆

    场景:在linux A 上执行Linux B上的shell脚本和命令 步骤1.设置ssh免登陆 1.SSH无密码登录 # 本地服务器执行(A机器):生成密钥对 ssh-keygen -t dsa -P ...

  2. shell 脚本控制命令的执行顺序

    &&,||,(),{},& 五个符号的运用shell脚本执行命令的时候,有时候会依赖于前一个命令是否执行成功.而&&和||就是用来判断前一个命令执行效果的. 也 ...

  3. Shell 脚本常用命令

    Shell脚本是Linux开发工作中常用的工具,但是我一直没有找到一个适合自己的简明扼要的HandBook.在工作过程中整理了一下,贴在这里已备查看. 1           Shell中的特殊符号 ...

  4. 用 shell 脚本做命令行工具扩展

    问题的提出 公司开发机与远程服务器之间有严格的隔离策略,不能直接使用 ssh 登录,而必需通过跳板机.这样一来,本地与服务器之间的一些文件传输变得非常不便.经过咨询,运维教了我一招: $ nc -l ...

  5. Linux之Shell脚本计算命令行的所有和

    问题:设计一个Shell脚本:求命令行上所有整数和 Shell代码: 调用add.sh脚本结果:

  6. Makefile Shell 脚本;sed命令

    1. 在Makefile中想使用shell脚本,需要添加"@"符号,例如: @if [ -d xxx ]; then \                        //-d 判 ...

  7. Linux Shell脚本Ldd命令原理及使用方法

    1.首先ldd不是一个可执行程序,而只是一个shell脚本2.ldd能够显示可执行模块的dependency,其原理是通过设置一系列的环境变量如下:LD_TRACE_LOADED_OBJECTS.LD ...

  8. linux shell脚本、命令学习

    1,echo "test" > test.txt    输出重定向到text.txt,文件不存在就创建 echo "test" >> test ...

  9. 使用getopt命令解析shell脚本的命令行选项 【转】

    本文转载自:http://yejinxin.github.io/parse-shell-options-with-getopt-command 在之前的一篇文章中,介绍了如何利用shell内置的get ...

随机推荐

  1. Spring Security在登录验证中增加额外数据(如验证码)

    在使用Spring Security框架过程中,经常会有这样的需求,即在登录验证时,附带增加额外的数据,如验证码.用户类型等.下面将介绍如何实现. 注:我的工程是在Spring Boot框架基础上的, ...

  2. Spark任务踩到的坑

    原因:文本编辑器导致多出来一个 “.”在首行

  3. JAVA 基础编程练习题6 【程序 6 求最大公约数及最小公倍数】

    6 [程序 6 求最大公约数及最小公倍数] 题目:输入两个正整数 m 和 n,求其最大公约数和最小公倍数. 程序分析:利用辗除法. package cskaoyan; public class csk ...

  4. Linux0.11学习

    Linux 0.11虽然不是什么“珠穆朗玛峰”,但它肯定还是“华山”或“泰山”.虽然有路但你还是需要最基本的努力和花费一定的代价才能“攀登”上去.1. PC兼容机硬件工作原理(比如8259A,8253 ...

  5. 在centos卸载mysql

    1 rpm -qa|grep mysql 查看安装了哪些mysql和lib…… 1 yum remove mysql mysql-server mysql-libs compat-mysql51 删除 ...

  6. 制作VB项目打包工具与安装程序

    该原因起于错误429. 当然比起自制我更推荐使用其他的功能完整的打包软件. 犹豫各种原因,导致三分钟热情被浇灭...本来想划四个部分详细讲教程的,大家看成品源码就好了,心好累. http://www. ...

  7. 【C/C++开发】C语言 DLL(动态链接库)中申请动态内存释放的问题

    参考:首先,声明一点,凡是使用malloc之类命令动态申请的内存,必须进行释放操作,否则就会发生内存泄漏问题. DLL中申请的内存释放,如果没有做过,很可能会认为是直接在调用程序中释放就可以了,其实不 ...

  8. 【VS开发】学习VS2010 ------ 多种类型的视图集合CTabView

    多种类型的视图集合CTabView 首先利用AppWizard建立工程,然后将视类的基类更改为CTabView,并将所有的CView更改为CTabView. 依次插入以CSrollView.CList ...

  9. SQL -------- JDBC 查询所有记录

    package demo; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; ...

  10. java.lang.ClassNotFoundException: org.apache.commons.dbutils.ResultSetHandle

    原因是这两个地方都得导入dbutils的jar包,一般出错是因为WEB-INF下没有导入包,记得导入,然后buildPath即可