bash编程-grep

grep, egrep, fgrep :输出匹配模式的行

grep:支持基本正则表达式元字符(grep -E相当于egrep)
egrep:支持扩展正则表达式元字符(egrep -G相当于grep)
fgrep:不支持正则表达式元字符(若不需要模式匹配,使用fgrep性能最好)

SYNOPSIS

grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]

1. grep

OPTIONS

-E:支持使用扩展的正则表达式元字符;
--color=auto:对匹配到的文本着色后高亮显示;
-i:ignorecase,忽略字符的大小写;
-o:仅显示匹配到的字符串本身;
-v, --invert-match:显示不能被模式匹配到的行;
-q, --quiet, --silent:静默模式,即不输出任何信息;
-A n:after, 后n行
-B n:before,前n行
-C n:context,前后各n行

2. egrep

OPTIONS

-G:使用基本的正则表达式元字符;
-i:ignorecase,忽略字符的大小写;
-o:仅显示匹配到的字符串本身;
-v, --invert-match:显示不能被模式匹配到的行;
-q, --quiet, --silent:静默模式,即不输出任何信息;
-A n:after, 后n行
-B n:before,前n行
-C n:context,前后各n行

3. fgrep

fgrep不支持模式匹配,其它用法与grep与egrep相同。

示例

# 筛选包含至少一个大写字母的行
grep "[A-Z]\+" /etc/passwd
# 筛选包行2个root的行及后1行
grep -A 1 "\(root\).*\1" /etc/passwd
grep -A 1 -E "(root).*\1" /etc/passwd
# 筛选包含1位数到3位数的行
grep "[1-9]\{1\}[0-9]\{0,2\}[^0-9]" /etc/passwd

你可能感兴趣的:(bash编程-grep)