使用 grep 的 -o 和 -E 选项进行正则的精确匹配

摘要:
sed命令可以很好地匹配行,因此带有-o和-E选项的grep命令可以实现这一目标。其中-o表示“将扩展正则表达式与-E选项一起使用是非常强大的。例如,下面有一个文本tmp.txt。{“aid”:“path”,“attachment/Mon_1112/2_57280400df3ab346”。jpg“}我们希望省略aid的值,即45:grep-o-E'aid”:[1-9]*'tmp.txt。结果是:

sed 命令可以很好的进行行匹配,但从某一行中精确匹配某些内容,则使用 grep 命令并辅以 -o 和 -E 选项可达到此目的。其中 -o 表示“only-matching”,即“仅匹配”之意。光用它不够,配合 -E 选项使用扩展正则表达式则威力巨大。

比如下面有一条文本 tmp.txt ,其中内容为:

{"aid":45,"path":"attachment/Mon_1112/2_1_5728040df3ab346.jpg"}


我们想从中过略出 aid 的值即 45 ,那么可以先如下这么做:

grep -o -E 'aid":[1-9]*' tmp.txt


得到的结果为:

aid":45


这时就好办了,我们可以使用 awk 的 -F 选项指示出冒号分隔符,这样就容易过滤出 45 这个值来,整个命令综合如下:

grep -o -E 'aid":[1-9]*' tmp.txt |awk -F: '{print $2}'

免责声明:文章转载自《使用 grep 的 -o 和 -E 选项进行正则的精确匹配》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇将默认的Netbeans中文版设置为英文界面/如何将Netbeans 6.5设置为英文界面fs.readdirSync下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

利用分支限界法求解单源最短路(Dijkstra)问题

分支限界法定义:采用Best fist search算法,并使用剪枝函数的算法称为分支界限法。 分支限界法解释:按Best first的原则,有选择的在其child中进行扩展,从而舍弃不含有最优解的分支,不断重复这一过程,直到找到答案或者判定无解。 分支界限法常常用到优先队列来选择最佳扩展节点,有时也会用到普通队列,以先进先出为原则来进行筛选。 单源最短路...

分析nginx日志常用的命令总结

1. 利用grep ,wc命令统计某个请求或字符串出现的次数 比如统计GET /app/kevinContent接口在某天的调用次数,则可以使用如下命令: cat /usr/local/nginx/logs/access.log | grep 'GET /app/kevinContent' | wc -l 其中cat用来读取日志内容,grep进行匹配的文...

MySQL集群搭建

MySQL集群概述和安装环境 MySQL Cluster是MySQL适合于分布式计算环境的高实用、高冗余版本。Cluster的汉语是“集群”的意思。它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器。 MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的 Cluster...

远程桌面无法登录:由于帐户限制,无法让你登(访问局域网某台电脑时提示:无法访问,你可能没有权限使用网络资源.的解决办法 !!)

方法一:将你所要远程连接电脑的登录账号设置为非空密码。 方法二:在远程计算机上启动“组策略编辑器”(开始-运行-GPEDIT.MSC),在“计算机配置-WINDOWS设置-安全设置-本地策略-安全选项”里找到“使用空白密码的本地帐户只允许进行控制台登录”,将其设置为“已停用”。 在远程桌面的不能复制文件或文字到自己桌面? 用services.msc 能看到...

【linux】suse linux 常用命令

命令ls——列出文件 ls-la给出当前目录下所有文件的一个长列表,包括以句点开头的“隐藏”文件 lsa*列出当前目录下以字母a开头的所有文件 ls-l*.doc给出当前目录下以.doc结尾的所有文件 命令cp——复制文件 cpafileafile.bak把文件复制为新文件afile.bak cpafile/home/bible/把文件afile从当前目录...

Linux用户(组)管理

在linux中系统中,它并不认识帐号名称。它认识的是我们的帐号ID,帐号ID保存在/etc/passwd文件中。我们在登录linux主机时,在输入完帐号和密码时,linux会先查找/etc/passwd文件中是否有这个帐号,如果没有则跳出,如果有的话,他会读取该帐号的user ID和group ID同时该帐号的根目录和shell也读了出来。然后在去核对密码...