shell 编程(一)之 正则表达式

接触linux那么长时间了, 今天想到了应该系统的学习整理一下了。(系统debian, ubuntu)。

就从命令行和linux shell (bash)开始吧。

 

正则表达式骑士没有什么神秘色彩,她就是模板(pattern)而已,用来匹配数据流的模式模板。她是通过一些linux(unix)程序来筛选符合匹配模式的

数据流,该模板通常会被包含在“/.../”中。  正则表达式最重要的就是元字符(metacharacter),这个是与linx命令行下通配符(wildcard)类似的特殊字符(但是有区别的),使用的时不能混淆。

 

我们常见的正则表达式有两种:

>> POSIX 基本正则表达式(BRE)

>> POSIX扩展正则表达式  (ERE)

 

下面通过介绍两个正则表达式引擎(regular expression engine)[主要是sed 编辑器和gawk ,就是上面提到的程序]来揭示正则表式的用法。

wolf@wolf:~$ echo "I am wolf" | sed -n '/wolf/p'
I am wolf

wolf@wolf :~$ echo "I am wolf" | sed -n '/python/p'      #按下回车键
wolf@wolf : ~$                                                                         #此行没有任何输出

wolf@wolf:~$ echo "I am wolf " | gawk '/wolf/{print $0}'
I am wolf
wolf@wolf:~$ echo "I am wolf " | gawk '/python/{print $0}'
wolf@wolf:~$

 


这是 一个基本的用sed编辑器和gawk使用正则表达式匹配数据流的例子。 具体的解释稍候就会涉及到。

 

再使用正则表达式之前有几个需要记住的原则:

1. 正则表达式区分大小写

2.正则表达式匹配的不必要是完整的单词。单词的一个部分(slice)也是可以的。

3.如果正则表达式中出现了空格, 那么它也是模式的一部分。

 

好了正式接触正则表达式。

这个正则表达式包含的几个基本的特殊字符有: . *[]^${}/+?|()

在使用时, 如果要单独匹配这些字符 , 此时不能直接在匹配模式中使用这些符号 , 需在前加一个转义字符/(backslash ).

还又一个需要注意的就是/(slash), 虽然它不是特殊字符之一,但是注意它经常由于包裹正则表达式的模板,所以他也是

需要转义的。

 

下面开始逐个介绍这些特殊字符的用法。(正则表达式运用的非常广, 在一些脚本语言中python, php.perl很常见,这些

基本的字符大多相同, 所以需要认真的对待, 一通百通)。

(未完待续)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值