07: linux中正则表达式与grep使用

时间:2024-12-16 11:08:14

1.1 linux中正则表达式

  1、^linux        以linux开头的行

  2、$php         以php结尾的行

  3、.                匹配任意单字符

  4、.+              匹配任意多个字符

  5、 .*              匹配0个或多个字符(可有可无)

  6、 [0-9a-z]     匹配中括号内任意一个字符

  7、 (linux)+        出现多次Linux单词

  8、 (web){2}        web出现两次以上

  9、\                       屏蔽转义

1.2 grep使用

  1、grep基本使用

    1、统计a.txt文件中有多少行包含"file"字符串

        grep -c "file"  a.txt

    2、在a.txt文件中有多少行匹配字符串"file",同时显示行和行号

        grep -n "file"  a.txt

    3、在a.txt文件中匹配字符串"file"不区分大小写

        grep -i "file" a.txt

    4、在文件中过滤掉file所在行(-v 取反)

        grep -v "file"  a.txt

  2、grep与正则结合

    1、在file文件中找到以 linux 开头的行

        grep -E '^linux' file

    2、在文件中查找以 linux 结尾的行

        grep -E 'linux$' file

    3、在file文件中有 linux 的行

        grep -e '.*linux.*' file

    4、找出file文件中包含数字的行

        [root@localhost aaa]# dfsj linux                                # 前面作色数字4表示第四行

    5、找出包含地址格式的行

        grep -En '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]\.[0-9]' file

    6、查找时间在 2016-11-11 10:22:50 到 2016-11-11 10:22:59

        [root@localhost aaa]#  grep -e "2016-11-11 10:22:5[0-9]" file
        查找时间在 2016-11-11 10:22:00 到 2016-11-11 10:22:59

    7、杀死所有的text.py进程

        ps -ef | grep -E "(manage.py)(.*):8000" | grep -v grep| awk '{print $2}' | xargs kill -9
        ps -ef | grep -E "test.py" | grep -v grep| awk '{print $2}' | xargs kill -9