用awk获得匹配的正则表达式,完成Perl中的功能
2016-08-02 00:00
971 查看
一、问题如下:
有如下文件
[root@localhost ~]# cat file
123a4wk123
123a3wk1234
[root@localhost ~]#
在perl中,可以用“()”来表示模式内存。
Perl code
可以获得file文件中的a4wk和a3wk两个字符串,但是这个功能怎么用awk实现呢?
二、解决方法: 使用match内嵌函数
1)在awk中可以使用match函数,其原型如下:
match(s, r [, a])其中s是要匹配的串,r是正则表达式,a是数组;
例子如下
例子1、用来获得IP地址:
[root@localhost ~]# ifconfig |awk --re-interval '{match($0,/([0-9]{1,3}\.){3}[0-9]{1,3}/,a) ;print a[0]}'
192.168.1.104
127.0.0.1
[root@localhost ~]#
其中--re-interval是必须加的,因为使用了量词{m,n};
2)match的详细用法举例,
[root@localhost ~]# echo foooobazbarrrrr | gawk '{ match($0, /(fo+).+(bar*)/, arr)
> print arr[1], arr[2]
> print arr[1, "start"], arr[1, "length"]
> print arr[2, "start"], arr[2, "length"]
> }'
foooo barrrrr
1 5
9 7
有如下文件
[root@localhost ~]# cat file
123a4wk123
123a3wk1234
[root@localhost ~]#
在perl中,可以用“()”来表示模式内存。
Perl code
open (FD , file) or die ; while ( < FD > ) { / (a . wk) / ; print $ 1 ; }
可以获得file文件中的a4wk和a3wk两个字符串,但是这个功能怎么用awk实现呢?
二、解决方法: 使用match内嵌函数
1)在awk中可以使用match函数,其原型如下:
match(s, r [, a])其中s是要匹配的串,r是正则表达式,a是数组;
例子如下
例子1、用来获得IP地址:
[root@localhost ~]# ifconfig |awk --re-interval '{match($0,/([0-9]{1,3}\.){3}[0-9]{1,3}/,a) ;print a[0]}'
192.168.1.104
127.0.0.1
[root@localhost ~]#
其中--re-interval是必须加的,因为使用了量词{m,n};
2)match的详细用法举例,
[root@localhost ~]# echo foooobazbarrrrr | gawk '{ match($0, /(fo+).+(bar*)/, arr)
> print arr[1], arr[2]
> print arr[1, "start"], arr[1, "length"]
> print arr[2, "start"], arr[2, "length"]
> }'
foooo barrrrr
1 5
9 7
相关文章推荐
- 用awk获得匹配的正则表达式,完成Perl中的功能
- SED,AWK学习笔记Part 1-----利用正则表达式进行文本匹配[转]
- perl 取出正则表达式的匹配位置
- [收藏] 正则表达式的入门与应用,1~4篇!grep/sed/perl/awk
- 【Perl】perl正则表达式中的元字符、转义字符、量词及匹配方式
- perl 中部分正则表达式中匹配非空字符和正常使用字符
- [收藏] 正则表达式的入门与应用,1~4篇!grep/sed/perl/awk
- SED,AWK学习笔记Part 1-----利用正则表达式进行文本匹配
- 正则表达式、正则表达式常用功能、匹配器、URL
- 巧用多个正则表达式解决取反替换问题(解决不匹配则替换问题)——用sed和perl的正则表达式
- perl正则表达式返回多个匹配
- Perl 正则表达式匹配计数
- Perl正则表达式匹配
- [收藏] 正则表达式的入门与应用,1~4篇!grep/sed/perl/awk
- Perl 正则表达式捕捉匹配
- [perl] 正则表达式实现多模式匹配
- 正则表达式之二:与正则表达式进行匹配-正则表达式与Perl接轨
- String对象与正则表达式实现匹配、查找和替换功能
- [收藏] 正则表达式的入门与应用,1~4篇!grep/sed/perl/awk