shell 正则表达式入门&&grep 正则表达式入门

本文介绍了Shell中正则表达式的使用方法,包括grep、awk和sed的不同形式,并通过实例展示了如何进行模式匹配和文本处理。

Shell正则表达式

1. shell 正则表达式的几种形式:

cat txt
no is ok
so is ok
ok is no so
it is ok
you are no so
he is no so
12 is good 
39 + 45 = 84
this is bad weather
sono is bad boy.

(1). grep  形式: 

echo "20121212"|grep "[0-9]\{4\}[0-9]\{2\}[0-9]\{2\}":其中,\{  --->是对{ 转义字符;
20121212
  注:在正则表达式中 一些通配符如果出现在表达式中,必须用\ 进程转义,才表示原本的意思。

(2). awk 形式:

  •     模式 /正则表达式/

awk  '/^(no|so)/' txt                    #打印以 no 或so 开头的所有行
awk  '/^[0-9]\{4\}*\.bat/{print $1} txt   #打印以4个0-9数字开头,以 .bat 结尾模式的行的第一个字段

  •    正则表达式匹配和不匹配 ~  、 ~!

awk '$1 ~/^[0-9][/0-9]/{print $0}' txt   # txt 文件每条记录的$1 如果是以2个 [0-9] 开始
12 is good 
39 + 45 = 84

awk '$1 !~/^[0-9][/0-9]/{print $0}' txt 
no is ok
so is ok
ok is no so
it is ok
you are no so
he is no so
this is bad weather
sono is bad boy.


2. shell 的 正则表达式 基础知识【good】

http://blog.csdn.net/fitywang/article/details/2156089   -->花时间看的资料

  1. 正则表达式是由普通字符[a-zA-Z][0-9]  等和一些特殊字符(称为元字符) 组成的文字模式


3.  awk 正则表达式的资料[good]

http://bbs.chinaunix.net/thread-2110174-1-1.html


4.  sed 正则表达式
http://blog.sina.com.cn/s/blog_807992170100sy95.html


5.  shell常用正则表达式

http://www.blogjava.net/jasmine214--love/archive/2011/10/12/361040.html


6. grep -P  '' txt  P选项是对 \t  这样的特殊字符生效:

 cat t
aaa     bbb
aaa     ccc
aaa     ddd

grep '\t' t
$ grep -P '\t' t 
aaa     bbb
aaa     ddd

只有当加上-P 参数时,才能搜索到 \t  的特殊字符


grep -n  txt       -n:参数是显示匹配行的前后n行   -A2 -B2   

cat txt
aaa 111 bbb
ccc 222 ddd
eee 333 ggg
jjj 444 kkk
hhh 555 lll
mmm 666 nnn

匹配行的前2行:

grep jjj -B2 txt    
ccc 222 ddd
eee 333 ggg
jjj 444 kkk
匹配行的后2行:

jjj 444 kkk
hhh 555 lll
mmm 666 nnn

匹配行的前后2行:

grep jjj -2 txt 
ccc 222 ddd
eee 333 ggg
jjj 444 kkk
hhh 555 lll
mmm 666 nnn


11-27 4086
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值