zoukankan      html  css  js  c++  java
  • sed awk

    脚本语言——shell+sed+awk和perl的区别
    2010-07-12 01:30
    http://hi.baidu.com/hyzshua1230/blog/item/4a18e63899c187cbd56225b5.html
    http://bbs.chinaunix.net/thread-702042-1-1.html

    如果是按行操作,就统统都用 sed;如果是不仅按行,还要按列操作,就统统都用 awk

    比如文件
    ab334cd-ccffafsdfbb006
    bb00dg-xxxxxx80790
    变成
    cdab334-ccffafsdfb006b
    dgbb00-xxxxx80790x
    逻辑关系: -前的字符串由3 部分组成: 1字母2数字3字母,把它们重组为 312 三个部分
    -后的字串中把结尾的数字串与它前面的一个字母对调
    你用posix awk写个出来看看
    上面这个例子说明:有的问题用 sed 很容易解决,但是用 awk 就比较费劲。

    shell 下工具众多,功能也互相重复,最头疼的是,这些重复部分的语法还各不相同,比如 grep awk sed 都有正则表达式匹配的功能,但是三者的正则表达式语法就不相同,最最最头疼的是,每个工具还分 GNU 版和不是 GNU 版,之间的差别也很大,最最最最最头疼的是,即使都是 GNU 版,那么版本号的细微差别也会带来很多差别。
    但是,用 Perl 做这些事,统统都能办到,而且统统都不太复杂。其实这也就是我学习 Perl 的原因。

    awk对正则表达式支持的程度比sed要差些,例如sub/gsub中不能用\1, \2这样的向前引用。gsed中的gensub是可以的,但必须写成\\1, \\2。
    perl应该说结合了sed/awk的优点,尤其是强大的正则表达式是我的最爱。^_^不过据说有的unix平台下缺省没有安装。

    Perl 还有一点优势,那就是 Windows 下有完美的支持,而 sed 和 awk 因为 windows 讨厌的“双引号问题”,因此工作起来都不是很爽,不过写成脚本执行还是可以的。

    sed/awk/grep 的好处在于,它们大多数都是单一文件的软件,因此在小系统上要比 Perl 好使,Perl 动辄数十M……

    总结:
    Perl安装文件比较大,默认系统中不一定有;sed、awk是单一文件,系统自带。
    脚本处理中Perl功能最强,且可调试。它原始的目的就是用来取代UNIX原有的sed/awk 与shell script的组合。
  • 相关阅读:
    css基础
    什么是css
    js写guess网页
    JavaScript_day02
    html基础知识
    JavaScript_day01
    由一个瀑布流导出对滚动条滚动距离,可视区尺寸,元素尺寸的内容的知识点
    一个页面从输入URL到页面加载显示完成,这个过程中发生了什么?
    http常用状态吗以及分别代表什么意思?
    cookies,sessionStorage和localStorage的相同点和不同点?
  • 原文地址:https://www.cnblogs.com/lexus/p/2257216.html
Copyright © 2011-2022 走看看