Linux正则表达式 grep

来源:互联网 发布:ubuntu搜狗安装错误 编辑:程序博客网 时间:2024/06/06 02:42

grep命令

grep [-cinvABC] 'word' filename

常用选项解释:

-c : 打印符合要求的行数。-i : 忽略大小写。-n : 输出符合要求的行及行号。-v : 打印不符合要求的行。-A : 后跟数字n(有无空格都可),打印符合要求的行和下面n行。-B : 后跟数字n,打印符合要求的行和上面n行。-C : 后跟数字n,打印符合要求的行和上下各n行。

例:
打印包含root的行和该行下面的两行

$grep -A2 'root' /etc/passwdroot:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologinbin:x:2:2:bin:/bin:/usr/sbin/nologin

打印包含root的行并输出行号

$grep -n 'root' /etc/passwd1:root:x:0:0:root:/root:/bin/bash

打印所有(不)包含数字的行

$grep [-v] '[0-9]' filename

在正则表达式中“^”表示行的开始,“$”表示行的结尾,“^$”则表示空行。

$grep '^[^a-zA-Z]' filename #打印不以英文字母开头的行。

“.”表示任意一个字符,“*”表示零个或多个前面的字符,“.*”表示零个或多个字符,包括空行。

$grep 'o.o*' filename 

“{}”,该符号内部为数字,表示前面的字符重复的次数,但需要使用脱义字符“\”。

$grep 'o\{2\}' filename #字符o重复2次$grep 'o\{2,4\}' filename #字符o重复2到4次$grep 'o\{2,\}' filename #字符o重复至少2次
原创粉丝点击