shell中grep:行过滤工具

来源:互联网 发布:市政道路工程验收数据 编辑:程序博客网 时间:2024/06/08 15:51

在Linux中,往往需要对大量文本做处理,其中有效的文本处理工具主要有grep ,sed 和 awk,三者称为文本处理的三大利器。 

grep :Globally search a Regular Expression and Print the line的缩写。表明grep是对文本中的行,逐行进行处理。

使用:grep [options] pattern [file]或者grep [options] [-e pattern | -f file] [file];

options :

--color=auto:对匹配到的文本着色后高亮显示: grep --color=auto "def" def.py ;

-i:ignorecase 忽略字符大小写:grep -i "def" test.txt;

-o:仅显示匹配到的字符串本身:grep -o "def" test.txt;

-v:invert match反向匹配,显示不能匹配的行 grep -v “def" test.txt;

-E:支持扩展的正则表达式的元字符;

-q:--quiet,--silent 静默模式,即不打印出任何信息,用于判断执行状态,echo #?;

-n --line-number 打印匹配行和行号;

-A num:after 打印匹配行和该行后面 num行;

-B num:before 打印匹配行和该行前面num 行;

-C num:context打印匹配行和该行前后num行;

基本正则表达式元字符:

字符匹配:

      .:所有单个字符;

[ ] :指定范围内的单个字符;

[^ ]:匹配指定范围外的任意单个字符grep [^def] test.txt;

匹配次数:

* 任意次数 0,1,多次;

\? 匹配前面的字符0次或者1次,即前面的字符可有可无;

 \+ 匹配前面的字符1次或者多次,即前面的字符一定出现至少一次;

\{m\}:匹配前面的字符m次;

\{m,n\}:匹配前面的字符至少每次,至多n次;

\{0,n\}:至多n次;

\{m,\}:至少m次;

位置锚定:

^ :行首

$:行尾

^$:空白行,不包括空白字符

^[[:space:]]*$:空行或者含有空白字符的行

分组及引用:

\(\):将一个或者多个字符捆绑在一起,进行处理;

\1:左起第一个();

\2:左起第二个();

...

0 0
原创粉丝点击