正则表达式之一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
下一篇 2017-02-28

相关推荐

  • 简明 Vim 练级攻略

    vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。非常不错。 ——————————正文开始—————————— …

    Linux干货 2015-04-04
  • 初学Linux之文件查找和压缩

    使用locate命令 ,使用find命令 ,压缩和解压缩工具

    2018-01-13
  • 一点点RPM

    1、软件管理器简介          随着Linux的不断发展及越来越多的人投入到Linux大家庭中,软件管理器的作用对于还无法熟练掌握源码编译安装的人们还是显得尤为重要,同时,由Linux开发商在为其编译完成的软件包在某种程度上要比在网络上流传的软件包要安全的多;所以,掌握Li…

    Linux干货 2015-12-06
  • 计算机的组成介绍

    一,什么是计算机?     计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。 二,发展历史 阶段 时期(年) 主要器件 特征 应用领域发展 第一代 1946—1958 电子管数字机 电子管,机…

    2016-10-29
  • mysql 备份脚本的编写

        最近在为做一些边边角角的工作,现在有一个需求要每天把mysql的数据库dump出来到备份机器上面去. 看似简单的任务也潜在了很多的需求,整理如下:     自动运行-crontab      脚本的环境变量设置-由于通过crontab 启动执…

    Linux干货 2015-12-15
  • python agent应用

    BaseHTTPServer 模块说明 class BaseHTTPServer.HTTPServer(server_address, RequestHandlerClass) server_address : 是一个服务器 (ip, port)元组。 RequestHandlerClas…

    Linux干货 2016-09-19