shell中grep:行过滤工具

在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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值