shell grep命令

Grep用法

grep [匹配条件] [处理文件] 可以多个文件,空格隔开

Grep参数

命令行举例

//tt.txt文件内容
php php java python golang wangteng shandong asp net php http java sdfdsfphp java sdfds PHHPHhphphhpHPHP sdagfrathuheqrughfbjavsjbvjadbjfbajvzvbzbvhaergewfb shandobg dezhou shandobg shandong dezhou hebei qingyun cangzhou beijing tianjin shandong tianjin shanxi hunan

-i 忽略字母大小写

grep -i php tt.txt
php java python golang wangteng shandong asp net php http java
sdfdsfphp java
sdfds PHHPHhphphhpHPHP

-v 条件取反,显示不匹配的行

grep -v php tt.txt
sdagfrathuheqrughfbjavsjbvjadbjfbajvzvbzbvhaergewfb
shandobg dezhou shandobg
shandong dezhou hebei qingyun cangzhou beijing tianjin
shandong tianjin shanxi hunan

-c 统计匹配行数,不显示行内容

grep -c php tt.txt
3

-w 匹配整个词

grep -w php tt.txt
php java python golang wangteng shandong asp net php http java

-x 匹配整行

grep -x php tt.txt
php

-l 只列出匹配的文件名,不显示具体匹配行内容

grep -l php ./*
./tt.txt

-n 显示匹配结果所在的行号

grep -n php tt.txt
1
:php 2:php java python golang wangteng shandong asp net php http java 3:sdfdsfphp java 4:sdfds PHHPHhphphhpHPHP

-E 支持扩展正则表达式

grep -E 'p' tt.txt
php
php java python golang wangteng shandong asp net php http java
sdfdsfphp java
sdfds PHHPHhphphhpHPHP

-F 不支持正则表达式,按照字符串字面意思进行匹配

grep -F 'PH' tt.txt
sdfds PHHPHhphphhpHPHP

-r 递归搜索

grep -r php

其他案例

//其他案例


grep -v "str" file   //在file文件中过滤掉字符串'str'所在的行

grep -E "2017:22:5[0-9]" file  //在file文件中查找时间在2017:22:50~2017:22:59所在的行
 
grep -E "^[^360]" file   //在file文件中查找不包括360的行

grep -E "w*t" file   //在file文件中查找包括w和t的行

grep -E "[5-8][6-9][0-3]"  //在file文件中查找大于560小于893的行

grep -E "9{2}" file  //在file文件中查找包含两个9的行

grep -E "9{2,}" file   //查找大于两个9的行

grep -E "^w" file  //查找文件中以w开头的行

grep -E "^[^w]" file  //查找文件中不是以w开头的行
原文地址:https://www.cnblogs.com/wt645631686/p/8476252.html