grep、sed、awk、perl等对正则表达式的支持的差别

grep 2.5.1 egrep 2.5.1 sed 3.02
sed 4.07
awk 3.1.1 perl 5.8.0 vim 6.1 JavaScript ??
转义 \ \ \ \ \ \ \
行头 ^ ^ ^ ^ ^ ^ ^
行尾 $ $ $ $ $ $ $
n个 {n} {m,n} {m,} {,n} \{n\} {n} \{n\} {n}或\{n\} 仅定义 –posix 或 –re-interval有效(要表达}和{,得用\\{和\\} 没有定义–posix或–re-interval时,不能用{n}的语法, \}\{和}{同义 {n} \{n\} {n}
{0,} * * * *或\*, (要表达*,得用\\*) * * *
{1,} \+ + \+ +或\+, (要表达+, 得用\\+) + \+ +
{0,1} \? ? \? ?或\?, (要表达?, 得用\\?) ? \? ?
任意字符 . . . . 含\n. . /s修饰后则含\n . 除\n . 除\n
(pat) 匹配并获结果 \(pat\) (pat) \(pat\) (pat)或\(pat\) (要表达括号,用\\( \\) ) (pat) \(pat\) (pat)
(?:pat) 匹配但不获结果 不支持 不支持 不支持 不支持 (?:pat) 不支持 (?:pat)
(?=pat) 等于预查 不支持 不支持 不支持 不支持 (?=pat) 不支持 (?=pat)
(?!pat) 不等预查 不支持 不支持 不支持 不支持 (?!pat) 不支持 (?!pat)
| 或 \| | \| |或\| (要表达|,得用\\|) | \| |
其中任意字符 [xyz] [xyz] [xyz] [xyz] [xyz] [xyz] [xyz]
[.ch.] [=ch=] 不支持 不支持 [.ch.] 不支持 不支持 不支持 不支持
单词边界 \b \b \b \b 不支持 \b 不支持 \b
非单词边界 \B \B \B \B 不支持 \B 不支持 \B
单词左右边界 <> \< \> \< \> \< \> 不支持 (><和\>\<和\\>\\<同义 不支持(><和\>\<同义 \< \> 不支持(><和\>\<同义
控制字符 /cx 不支持 不支持 \cx 不支持 \cx 不支持 \cx
数字\d 不支持 不支持 不支持 不支持 \d \d \d
非数字\D 不支持 不支持 不支持 不支持 \D \D \D
换页 \f 不支持 不支持 高版本支持 \f \f 另义 \f表示文件名字符 \f
换行 \n 不支持 不支持 不支持 \n \n \n \n
回车 \r 不支持 不支持 \r \r \r \r \r
空白 \s 不支持 不支持 不支持 不支持 \s \s \s
非空白 \S 不支持 不支持 不支持 不支持 \S \S \S
制表符 \t 不支持 不支持 高版本支持 \t \t \t \t
垂直制表符 \v 不支持 不支持 高版本支持 \v \v 另义 \v表示very magic \v
单词字符 \w [A-Za-z0-9_] \w \w \w 不支持 \w \w \w
非单词字符 \W [^A-Za-z0-9] \W \W \W 不支持 \W \W \W
\xn 16进制 不支持 不支持 高版本支持 \xn \xn 另义 \x表示[0-9A-Za-z] \xn
\n 八进制 不支持 不支持 不支持 \n \n 不支持 \n
\n 后向引用 \n \n \n \n 仅取结果可用 \n \n 仅取结果可用 \n
[:alnum:] 字母和数字 [:alnum:] [:alnum:] [:alnum:] [:alnum:] [:alnum:] [:alnum:] 不支持
[:alpha:] 字母 [:alpha:] [:alpha:] [:alpha:] [:alpha:] [:alpha:] [:alpha:] 不支持
[:cntrl:] 控制字符 [:cntrl:] [:cntrl:] [:cntrl:] [:cntrl:] [:cntrl:] [:cntrl:] 不支持
[:digit:] 数字 [:digit:] [:digit:] [:digit:] [:digit:] [:digit:] [:digit:] 不支持
[:graph:] 可打印字符(不含空格) [:graph:] [:graph:] [:graph:] [:graph:] [:graph:] [:graph:] 不支持
[:lower:] 小写 [:lower:] [:lower:] [:lower:] [:lower:] [:lower:] [:lower:] 不支持
[:print:] 可打印字符(含空格) [:print:] [:print:] [:print:] [:print:] [:print:] [:print:] 不支持
[:punct:] 标点 [:punct:] [:punct:] [:punct:] [:punct:] [:punct:] [:punct:] 不支持
[:space:] 空格 [:space:] [:space:] [:space:] [:space:] [:space:] [:space:] 不支持
[:upper:] 大写字母 [:upper:] [:upper:] [:upper:] [:upper:] [:upper:] [:upper:] 不支持
[digit:] 16进制数字 [digit:] [digit:] [digit:] [digit:] [digit:] [digit:] 不支持
[:return:] 不支持 不支持 不支持 不支持 不支持 [:return:] 不支持
[:tab:] 不支持 不支持 不支持 不支持 不支持 [:tab:] 不支持
[:escape:] 不支持 不支持 不支持 不支持 不支持 [:escape:] 不支持
[:backspace:] 不支持 不支持 不支持 不支持 不支持 [:backspace:] 不支持

grep、sed、awk、perl、js、vim等对正则表达式的支持的差别的更多相关文章

  1. Linux三剑客grep/sed/awk

    grep/sed/awk被称为linux的“三剑客” grep更适合单纯的查找或匹配文本: sed更适合编辑匹配到的文本: awk更适合格式化文本,对文本进行较复杂各式处理: Grep --color ...

  2. linux三剑客grep|sed|awk实践

    最好先学习正则表达式的基本用法,以及正则表达式BREs,EREs,PREs的区别 此坑待填 grep sed awk

  3. 【Linux】 字符串和文本处理工具 grep & sed & awk

    Linux字符串&文本处理工具 因为用linux的时候主要用到的还是字符交互界面,所以对字符串的处理变得十分重要.这篇介绍三个常用的字符串处理工具,包括grep,sed和awk ■ grep ...

  4. [svc]linux正则实战(grep/sed/awk)

    企业实战: 过滤ip 过滤出第二行的 192.168.2.11. eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ine ...

  5. vim grep sed awk对大小写不敏感

    vim grep sed awk对大小写不敏感 环境 [root@osker ~]# cat /etc/redhat-release CentOS Linux release (Core) [root ...

  6. Linux基础命令-Nginx-正则表达式( grep sed awk )-Shell Script--etc

    Linux基础使用 学习内容博客 内存 查看swap分区信息 > swapon -s 添加swap分区 > mkswap /dev/sdb2 > 激活 swapon -a /dev/ ...

  7. linux grep,sed,awk和diff的使用

    1:grep//显示行 # grep 'main' /home/myhome/a.c//将a.c含有main的行显示出来 # grep -v 'main' /home/myhome/a.c //显示除 ...

  8. Using of grep sed awk on Linux

    #This script is to parse data file: fun0() { ## [INFO1]a=1   b=2 c=3 [INFO2]a=7 b=8 c=9 [INFO3] a=x ...

  9. grep, sed, awk

    这几个工具是shell中非常好用的文本流处理工具,可以进行查找,编辑或者分析等工作,它们都支持正则表达式,也支持使用shell内置的变量 grep grep是一个字符串比较工具,用于从文件中提取满足条 ...

随机推荐

  1. 分布式文件系统GlusterFS

    转自于:http://www.cnblogs.com/zitjubiz/archive/2012/11/30/Distributed_File_System_glusterFS.html Gluste ...

  2. 知识点2-5:了解Razor语法

    以往开发ASP.NET Web Form时,在ASPX页面上都会出现许多夹杂C#/VB.NET与HTML的情况,而先前使用<%...%>这种传统圆角括号的表示法会让HTML标签与ASP.N ...

  3. 初探 插头DP

    因为这题,气得我火冒三丈! 这数据是不是有问题啊!我用cin代替scanf后居然就AC了(本来一直卡在Test 18)!导致我调(对)试(排)了一个小时!! UPD:后来细细想想,会不会是因为scan ...

  4. Git现实(四)状态转换

    前Git实战(三)环境搭建博文.我们大致解说了一下git的环境安装.今天我们解说一下Git的状态转换. 学习版本号控制工具.对工具进行版本号控制之间的状态转换很重要. 毕竟Git仅仅是一个工具,假设不 ...

  5. Swift学习之UI开发初探

    Swift是供iOS和OS X应用编程的新编程语言.相信很多开发者都在学习这门新语言.废话不多说,下面我就来学习使用Swift创建一个简单的UI应用程序. AD: 概述 Apple近日发布了Swift ...

  6. Android如何监听蓝牙耳机的按键事件

    写在前面: 直接想要代码很简单,你直接把滚动条拉到最底端就可以看到.如果想要十分地了解为什么,那就按照我规划的一步一步来理解.以下测试环境以手头上有的「Bluedio + 红米手机」. 1.蓝牙耳机的 ...

  7. lua语法 - 基础篇

    1. 注释 单行注释:--,类似于C++的// 多行注释:--[[ ... ]],类似于C++的/*...*/ 2. 语句 分隔符:分号或者空格,一般多行写一起,建议用分号 语句块:do ... en ...

  8. 哈,又一款超级简单的队列(MQ)实现方案来了~

    开源的消息队列已经很多了,但大部分很重,实际环境下,很多可能只是使用到了一点功能而已,杀鸡使用牛刀,着实有些浪费了.很多时候,我们只想要一片绿叶,但它们给了我们整个的春天,很难消化.本着DIR精神, ...

  9. Charles_N:HTTP请求响应监听工具

    Charles:HTTP请求响应监听工具使用说明.doc   1.    介绍 Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器.它允许一个开发者查看所有连接互联网的HTTP通信 ...

  10. 基于visual Studio2013解决C语言竞赛题之1031猜数

          题目 解决代码及点评 /* 31. 猜号码∶由随机函数产生一个1至1000之间的整数,让人猜之. 计算机仅回答人猜的数大.小还是相等,当人猜对时, 由计算机打印出人 ...