正则表达式之一grep

grep :文本过滤( 模式:pattern) 工具

包括:grep, egrep, fgrep (不 支持正则表达式 搜索)

用法格式: grep [OPTIONS] PATTERN [FILE…]

                    模式:由正则表达式字符及文本字符所编写的过滤条件

 各种选项:  –color=auto :     显示匹配的文本着色,centos7已经自动匹配红色

                   -b              :     显示不被模式匹配的行

                   -i     :忽略字符大小写                -n   :  显示匹配的行号                  -v :     统计匹配到的行数

                   -o    :仅显示匹配到的字串           -q  :静默模式,不输出任何信息  

                    -A #   -B #    -C #     :  显示模式匹配到的前后行数,after、before、context前后各#行

                    -e   :  实现多个选项间的逻辑or关系   grep –e ‘cat ’ -e ‘dog’ file

                    -E   : 扩展正则表达式                          -w   : 整行匹配整个单词

                    -F   :fgrep,不支持正则表达式

             grep使用通配符,有些符号需要转义,扩展正则表达式则不需要,两者其他功能一样

扩展正则表达式:egrep     支持元字符、通配符等,和文件名通配稍微有点区别:使用egrep,转义符\不需要

               .     匹配任意单个字符                          []     匹配指定范围内的任意单个字符

               *    匹配 前面的字符任意次,包括0次     贪婪模式:尽可能长的匹配
                \?  匹配 其前面的字符0 或1次                        \+  匹配 其前面的字符至少1次

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

位置锚定:

         ^$  :   ^行首锚定,$行尾锚定。合在一起就是空行的意思                    ^[[:space:]]*$ 空白行

          \b  词首锚定,用于单词模式的左侧 ; 词尾锚定;用于单词模式的右侧

            \<PATTERN\>   匹配整个单词

     分组后向引用有点难理解:分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名方式为: \1, \2, \3, …
              exam:  egrep  (string1)(string2)\1\2      \1表示引用第一个字符串,\2表示引用第二个字符串

              如果使用grep ,括号需要转义\(\);

              或者的逻辑关系:  a|b: a或b           C|cat: C 或cat                 (C|c)at:Cat 或cat

vim编辑器基本认识: 

                vim  [OPTION]… FILE…                如果该文件存在,文件被打开并显示内容

                                                                 如果该文件不存在,当编辑后第一次存盘时创建它

                参数使用了解即可,接触不到几个。


三种主要模式: 命令模式、输入模式、末行模式          Esc键 退出当前模式总是返回到命令模式

                                   

正则表达式之一grep

命令模式转换插入模式:

                  i     : insert,  在光标所在处输入        

                  a    : append,  在光标所在处后面输入 

                  o    :  在当前光标所在行的下方打开一个新行   

                大写I,A,O,表示在光标行首输入、光标行尾输入、所在行上分打开新行

注意:插入模式和末行模式是不能直接转换,需要通过命令模式中转, 

            支持锁定和解锁,和锁定linux一样, 只是不显示而已,实际还能输入

            :q  退出             :q!  强制退出,丢弃做出的修改

            :wq   保存退出        :wq!   强制保存退出         建议使用这些退出方式,其他退出方式操作快,危险

在末行模式下:

            r filename      读文件内容到当前文件中

            w filename 将当前文件内容写入另一个文件

            !command  执行命令

            r!command  读入命令的输出

命令模式的光标跳转:

            H :页首 M行 :页中间行 L: 页底

             h: 左 左 l: 右 右 j: 下 下 k: 上    (习惯使用方向键也行)  还可以单词跳转:w、e、 b

             ^:  跳转至行首的第一个非空白字符           $:  跳转至行尾               0:   跳转至行首

             G :最后一行     #G :跳转指定#行                     gg: 第一行

             Ctrl+f    向尾部翻一屏        Ctrl+b      向首部翻一屏      

             dd :  删除光标所在行          yy:复制光标所在行         p,P:  粘贴复制的整行,也可以粘贴删除的字符

             ~ : 大小写替换

            还有查找替换功能:s/string/string2/g              g:  全局替换         查找替换中的分隔符/ 可替换为其它字符

u 撤销最近的更改             按Ctrl – r 重做最后的“撤消”更改

这些就是些基本用法,vim功能很强大,还有很多强大的功能,太多了,我们先了解使用即可。

原创文章,作者:shewei,如若转载,请注明出处:http://www.178linux.com/70198

(0)
sheweishewei
上一篇 2017-02-27 15:29
下一篇 2017-02-28 10:18

相关推荐

  • CentOS7中nmcli网络管理及使用详解

    一、网络接口配置工具    在CentOS7系统中,强烈推荐使用nmcli管理网卡。下面记录的是nmcli的使用详解。    网络接口配置工具NetworkManager(简称为nmcli),该命令的作用是:可以查询网络连接的状态,也可以用来管理网络(设置系统每个网卡的特性)。该命令如何使用呢,其实可以用"n…

    Linux干货 2016-09-11
  • 走进linux的世界

    1、描述计算机的组成及其功能。  所谓的计算机就是一种计算器,而计算器其实是:接受用户输入指令与数据,经由中央处理器的数学与逻辑单元运算处理后,以产生或储存成有用的信息。 计算机系统由硬件系统和软件系统两个部分组成。 硬件系统由运算器、控制器、存储器、输入设备、输出设备组成。 运算器 是计算机中进行算术运算和逻辑运算的主要部件是计算机的主体。 控…

    Linux干货 2017-01-14
  • N22-第九周作业

    第九周    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现;    #!/bin/bash    #    decl…

    Linux干货 2016-10-24
  • M22 wireshark使用方法简介

    wireshark是一款著名的开源抓包软件,它可以抓取网卡的数据包,以供网络管理员分析。 一 安装方法 debain系安装方法: sudo add-apt-repository ppa:wireshark-dev/stable sudo apt update sudo apt install wireshark 启动wireshark: sudo wires…

    2017-03-20
  • 0812 find 作业

    0812作业 1、查找/var目录下属主为root,且属组为mail的所有文件 [root@CentOS 7 ~]# find /var -user root -a -group mail /var/spool/mail [root@CentOS 7&nbsp…

    Linux干货 2016-08-13
  • CentOS6/7下不关机识别新添加的scsi硬盘

    1)需求说明 在虚拟机中,我们在服务器开机的状态下添加新的磁盘或者说从存储上映射某个LUN区域给服务器,不重启系统的情况下,往往不能够直接识别到磁盘,在遇到这种情况的时候,我们可以让系统重新扫描让服务器重新识别到磁盘。 2)处理步骤 下面看一下在系统不重启的情况,如何让系统认识新的磁盘,并能对其分区与格式化 1、在开机状态下新增磁盘 2、执行下面的命令 ec…

    Linux干货 2016-07-22