本文共 2438 字,大约阅读时间需要 8 分钟。
由此题答案,我们看出,玩运维,技术仅仅是基础,思想才是上层建筑, 简单、易用是运维追求的目标,本文法3,法5堪称最佳答案。
问题:某成都网友刘刘群内提出这样的问题,希望同学们帮他解答下。 问题如下: 成都@刘刘(13888188) 21:26:58 ls /root 后 我看到了这三个文件 amp-content-display-portlet-1.0.1-20120829.081044-11.war amp-facebook-post-editor-1.0.1-20120829.084615-1.war amp-services-portlet-1.0.2-20120829.085733-3.war 然后我要写个脚本,把版本号及后面的数字都给屏蔽了,只匹配文件名,请问下这段匹配的语句该如何写啊?这是群里网友给他的解法:
find /root/test/ | awk -F "/" '{print $4}' |awk -F "." '{print $1}' | sed -e "s/-1//g " 这个解法可以实现,但是有点字符太多了,不够专业。请大家发挥你们学习的技术,给出你们认为最佳的答案。现在到了大家亮剑的时候了。 (to 老男孩培训12期(面授加网络)全体学生)由于方法太多,这里我们仅限制使用sed,awk完成。测试文件:
[root@oldboy ~]# cat test.log amp-content-display-portlet-1.0.1-20120829.081044-11.war amp-facebook-post-editor-1.0.1-20120829.084615-1.war amp-services-portlet-1.0.2-20120829.085733-3.war amp-facebook-account-editor-1.0.1-20120829.081353-15.war amp-inbound-processor-hook-1.0.1-20120829.081546-9.war amp-vcr-editor-portlet-1.0.1-20120829.081801-21.war法1
[root@oldboy ~]# sed 's#\(^.*\)-1\..*\.war#\1.war#g' test.log amp-content-display-portlet.war amp-facebook-post-editor.war amp-services-portlet.war amp-facebook-account-editor.war amp-inbound-processor-hook.war amp-vcr-editor-portlet.war法2
[root@oldboy ~]# sed -r 's/(.*.)-(1.0.*.)/\1.war/' test.log amp-content-display-portlet.war amp-facebook-post-editor.war amp-services-portlet.war amp-facebook-account-editor.war amp-inbound-processor-hook.war amp-vcr-editor-portlet.war法3(最佳答案,符合简单、易用原则)
[root@oldboy ~]# awk -F "-1" '{print $1".war"}' test.log amp-content-display-portlet.war amp-facebook-post-editor.war amp-services-portlet.war amp-facebook-account-editor.war amp-inbound-processor-hook.war amp-vcr-editor-portlet.war法4
[root@oldboy ~]# awk -F "-[0-9].*" '{print $1".war"}' test.log amp-content-display-portlet.war amp-facebook-post-editor.war amp-services-portlet.war amp-facebook-account-editor.war amp-inbound-processor-hook.war amp-vcr-editor-portlet.war法5(最佳答案,符合简单、易用原则)
[root@oldboy ~]# sed 's/-[0-9].*/.war/' test.log amp-content-display-portlet.war amp-facebook-post-editor.war amp-services-portlet.war amp-facebook-account-editor.war amp-inbound-processor-hook.war amp-vcr-editor-portlet.war法6
[root@oldboy ~]# sed -r 's/-[-.0-9]+[0-9]//' test.log amp-content-display-portlet.war amp-facebook-post-editor.war amp-services-portlet.war amp-facebook-account-editor.war amp-inbound-processor-hook.war amp-vcr-editor-portlet.war欢迎朋友们留下你的更多更好的智慧,可以写在评论里。老男孩的学生们看到了,请你们注释下你们的答案,让博友们更清晰一些。转载地址:http://twszl.baihongyu.com/