正则表达式之一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

相关推荐

  • Linux哲学思想

    一切皆文件(硬件设备亦如此); 由众多目的单一的小程序组成,一个程序只做一件事,并且要好; 组合小程序完成复杂任务; 尽可能避免跟用户交互; 使用文本文件保存配置信息; 提供机制,而非策略。 Linux作为自由软件(GNU),同时也遵循自由软件的思想: 自由使用 自由学习和修改 自由分发 自由创建衍生版

    Linux干货 2016-10-31
  • N24_辉 学习宣言

    我志愿加入马帮的大家庭。 在此,我坚信有志者事竟成,同时,机会总是留给有准备的人的。 既来之,则安之。我的目标是能在规定的时间内结业,正如马哥所说:完成比完美更重要! 无论如何,也要完成!fighting!!!

    Linux干货 2016-10-24
  • 用户和组管理

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@suywien ~]# who | cut -d ‘ ‘ -f1 | uniq -c 2 root [root@suywien ~]# 2、取出最后登录到当前系统的用户的相关信息。 [root@suywien ~]# who | tail -1 | cut…

    Linux干货 2018-03-18
  • 集中练习1-10个Linux运维脚本

    用户管理、文本处理、文件管理相关

    2017-09-20
  • gdisk用法

    gdisk用法   gdisk  – Interactive GUID partition table (GPT) manipulator GPT  fdisk (aka gdisk) is a text–mode menu–driven program for creation and ma…

    Linux干货 2017-04-24
  • Linux运维学习历程-第二天-虚拟机的配置

    学习Linux我自己的感觉是可以按Linus的哲学思想来学习 比如一切皆文件,那我们首先可以记住一些重要的常见的路径和文件,并知道有什么作用,这样在初期学习时,我们要干什么时,知道在哪里找;   而命令我们可以每天记忆并练习一些,本身Linux的基本命令都是一下短小精悍的而且有些命令名本身就是英文单词,像date命令就是和系统时间有关的命令用来显示…

    Linux干货 2016-08-03