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)
shadowshadow
上一篇 2016-12-23 01:00
下一篇 2016-12-23 01:17

相关推荐

  • 第三周

    第三周 1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@node1 ~]# who -q | sed -n ‘1p’ centos root fedora redhat mint 2.取出最后登录到当前系统的用户的相关信息。 [root@node1 ~]# who -a | tail -1 mint +…

    Linux干货 2017-07-25
  • 第一次作业

    第一次作业 作业1 博客 作业2 echo -e "\033[49;31;4;5m*******\033[0m \n\033[49;32;4;5m ***** \033[0m \n\033[49;33;4;5m  ***  \033[0m \n\033[49;34;4;5m   *   \033[0m&quo…

    Linux干货 2016-08-03
  • apache自动化脚本搭建虚拟主机

    1 基于主机名实现三个虚拟主机 (1).创建网站目录与测试文件 (2).创建虚拟主机文件(目录为/etc/httpd/conf.d/下)   (3).修改测试apache主机hosts文件(就不用DNS服务器解析,方便测试),测试httpd配置文件是否有问题,重启httpd服务   (4)修改测试主机hosts文件(就不用DNS服务器解析…

    Linux干货 2016-10-09
  • N25 – Week 4 blog

    第四周博客作业了,感觉前面的有好多都忘掉了,但是没有时间补以前的啊……好郁闷,幸好今天周五,明天又是圣诞节,从马云爸爸买了一颗圣诞树,今晚回家装上 1. 复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限 [root@dhcp-10-129-6-166&nb…

    Linux干货 2016-12-20
  • ​文件系统层级结构标准

    多数Linux发行版遵从FHS标准并且声明其自身政策以维护FHS的要求。 [1] [2] [3] [4] 然而,包括由自由标准小组成员在内开发的绝大多数发行版(截至2009年),并不完全执行建议的标准。
    当FHS创建之时,其他的UNIX和类Unix操作系统已经有了自己的标准,尤其是hier(7)文件系统布局描述。 自从第七版Unix(于1979年)发布以来已经存在,或是SunOS filesystem(7), [5] 和之后的Solaris filesystem(5)。 例如,Mac OS X使用如 /Library、 /Applications和/Users 等长名与传统UNIX目录层次保持一致。
    现在的Linux发行版包含一个/sys目录作为虚拟文件系统(sysfs,类似于 /proc,一个procfs),它存储且允许修改连接到系统的设备,然而许多传统UNIX和类Unix操作系统使用/sys作为内核代码树的符号链接。
    一些Linux系统如GoboLinux和Syllable Server使用了和FHS完全不同的文件系统层次组织方法。

    Linux干货 2016-10-17
  • Linux ssh安全远程登录

                   Linux ssh安全远程登录 本章内容:     构建SSH远程登录系统     SSH(secure shell)是标准的网络协议,主要用于实现字符界面的远程登录管理…

    Linux干货 2016-10-10