您的位置:首页 > 其它

grep语法和正则表达式

2016-02-01 22:26 232 查看
一、grep的语法:

grep 'word' 文件名

grep 'word' 文件1 文件2 文件3

grep 'string1 string2' 文件名

cat 某个文件 | grep '某个东西'

command | grep '某个东西'

command 选项1 | grep ‘数据’

grep –color '数据' 文件名

1.搜索文件

grep -i "root"/root /etc/passwd -i强制忽略大小写

2.递归使用grep

grep –r/R "string“ 目录

grep –rh 禁止输出文件名

3.搜索文本

grep –w "string" 文件 搜索包含string整词的行

4.搜索两个不同的单词

egrep –w "string1|string2" 文件

5.统计文本匹配到的行数

grep –c 'string' 文件

6.反转匹配(不匹配)

grep –v 'string' 文件 匹配出不包含string的行

7.管道与grep命令

显示硬盘设备的名字:dmesg | egrep '(s|h)d[a-z]'

dmesg可以显示计算机启动信息

cat /proc/cpuinfo| grep –i 'model' 显示cpu型号

8.显示匹配到的文件名字

grep –l 'main' *.c

grep –L 不显示文件名

grep –H 在显示行前显示文件名 -h强制隐藏文件名

9.以彩色输出

grep --color 'string' /etc/passwd

10.搜索以-开头的匹配模式

grep –e '-string' 文件名 用-e,否则grep会把字符当作选项

11. 仅仅显示匹配出的字符,而不显示行

grep –o 正则表达式 文件名

二、grep和正则表达式

1.^和$ 同 \< 和 \>

grep '^string' file 以string开头的行

grep 'string$' file 以string结尾的行

2.[ ]

grep 'string[sm][a-zA-Z][0-9]' [0-9]代表一个0-9的数字,[a-z]代表a-z的字母

grep [wn] 文件名 显示含有w或n的所有行

3. . 匹配任意一个字符

grep '^..$' 文件名 打印出只有两个字符的行

grep ‘^\.[0-9]’ 文件名 打印出以.数字开头的行

4.扩展正则表达式

grep –E 同 egrep一样

* 前面的字符重复0-n次 grep -nE go*gle file
匹配gle,gogle,goodle

+ 前面的字符1-n次 grep -nE go+d 文件名 匹配god,good

? 匹配0/1次前面的字符 grep -nE 'go?d' file
匹配gd,god

() 匹配括号内的字符串 grep -nE 'g(oo|la)' file
匹配good,glad

1.使用|

grep 'string2|string1' 文件名

2.和匹配

grep "string1" 文件名 | grep 'string2'

3.多次出现

egrep '字母{min,max}' 文件名 匹配字母出现min-max次的行

egrep '字母{min,}' 文件名 匹配字母出现min次以上的行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: