grep与文本处理工具

grep:基本正则表达式,-E  -F

egrep:扩展正则表达式,-G -F

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

egrep:

         支持扩展的正则表达式实现类似于grep文本过滤功能; grep -E

         egrep [OPTIONS] PATTERN [FILE….]

        -l, -o, -v, -q, -A, -B, -C

          -G:支持基本正则表达式

   扩展正则表达式的元字符:

           字符匹配:

          . :任意单个字符

          []: 指定范围内的任意单个字符

          [^]:指定范围外的任意单个字符

次数匹配:

        *:任意次,0,1或多次;

        ?:0吃货1次,其前的字符是可有可无的;

        + :其前字符至少1次;

       {m}: 其前的字符m次;

       {m,n}:至少m次,至多n次;

               {0,n}

               {m,}

    位置锚定

           ^:行首锚定;

           $:行尾锚定

           \>,\b: 词尾锚定;

      分组及引用:

             ():分组:括号内的模式匹配到的字符会被记录于正则表达式引擎的内部变量中;

               后向引用:\1,\2,….

     或:

           a|b: a或b :

           C|cat: C或cat

           (c|C)at: cat或Cat

练习:1、找出/proc/meminfo文件中,所有在大写或小写S开头的行;至少有三种实现方式:

    ~]# grep -i "^s" /proc/meminfo

    ~]# grep  "^[sS]" /proc/meminfo

    ~]# grep  -E "^(s|S)" /proc/meminfo

2、显示当前系统上root、centos或user1用户的相关信息;

    ~]# grep -E"^(root|centos|user1)\>" /etc/passwd

3、找出/etc/rc.d/init.d/functions文件中某些单词后面跟一个小括号的行;

     ~]# grep -E -o "[_[:alnum:]]+\(\)" /etc/passwd 

4、使用echo命令输出一绝对路径,使用egrep取出基名;

       ~]#  echo /etc/sysconfig/ |grep -E-o "[^/]+/?$"

5、找出ifconfig命令结果中的1-255之间的数值;

       ~]# ifconfig | grep -E -o "\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>"

6、课外作业:找出Ifconfig命令结果中的IP地址;

7、添加用户bash,testbash,basher 以及nologin(其shell为/sbin/nologin/;而后找出/etc/passed文件中用户名同shell的行;

        ~]# grep -E  "^([^:]+\).*\1$" /etc/passwd

fgrep :不支持正则表达式元字符;

         当无需要用到元字符取编写模式是,使用fgrep 必能更好;

文本查看仅处理工具:wc,  cut , sort,  unig, diff, patch

       wc: word count

       wc:[OPTION]…[FILE]…

        -l:lines

        -w:words

        -c: bytes

cut:

     cut OPTION…[FILE]…

            OPTION:

             -d CHAR:以指定的字符为分隔符

             -f FIELDS: 挑选出的字段;

              #:指定的单个字段

              ##:连续的多个字段;

              #‘#:离散的多个字段;

sort:

       sort [OPTION]…[FILE]…

               -n 基于数值大小而非字符进行排序;

               -t CHAR; 指定分隔符:

              -k#: 用于排序比较的字段;

              -r :逆序排序;

              -f: 忽略字符大小写

              -u:  重复的行只保留一份;

                     重复行  

uniq:

        report or omit repeated lines报告或移除重复的行

        uniq [OPTION]…[INPUT [OUTPUT]]

              -c: 统计每一行重复出现的次数

              -u:仅显示未重复非行

              -d:仅显示重复过的行;

diff: compare files line by line 逐行比较文件中的内容

         diff [OPTION]…FILES 

         diff /PATH/TO/OLDFILE /PATH/TO/NEWFILE> /PATH/TO/PATCH_FILE

           -U:使用unfied机制,即显示要修改的行的上下文,默认为3行;

patch /PATH/TO/OLDFILE < /PATH/TO/PATCH_ILE

l练习:取出ifconfig eno16777736命令结果中的ip地址;

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

(0)
上一篇 2016-12-23 01:00
下一篇 2016-12-23 01:17

相关推荐

  • LB-lvs

    Linux Cluster: Cluster:计算机集合,为解决某个特定问题组合起来形成的单个系统; Linux Cluster类型: LB:Load Balancing,负载均衡; HA:High Availiablity,高可用; A=MTBF/(MTBF+MTTR) (0,1):90%, 95%, 99%, 99.5%, 99.9%, 99.99%, …

    Linux干货 2017-06-25
  • 磁盘管理

    磁盘管理

    Linux干货 2017-10-27
  • 细说CP使用

    cp详细用法和常用选项

    Linux干货 2017-11-26
  • smb

    练习: 创建一个共享ftp,路径为/var/ftp/pub;要求仅centos和gentoo用户能上传;此路径对其它用户不可见; [root@node1 ~]# yum -y install samba [root@node1 ~]# vim /etc/samba/smb.con…

    Linux干货 2016-10-23
  • Nginx 进阶 (ssl、fpm、rewrite、cache配置等)

    Nginx(与ssl结合配置https网站、rewrite,fastcgi配置详解) 前言 前面已经介绍过Nginx的一些基础概念,还有几个比较重要的模块:利用ssl给会话加密,利用rewrite功能灵活改写访问结果,以及利用fastcgi与php模块结合等等。 一、配置https网站 1、自建CA (1)生成私钥文件 mkdir -p /etc/pki/C…

    Linux干货 2016-12-26
  • 软件包管理rpm和yum基本使用

    RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。 rpm 执行安装包 二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,…

    Linux干货 2016-08-29