SHELL编程杂谈

最近一阵使用Linux颇多,N年前Unix上的经验还派上了不少用场。对于程序员来说Unix
上编程(包括shell和C)应该是不可或缺的体验。总结一下shell编程的优势。

 

1)众多强大的工具,兼有正则利器。
   SHELL作为一种胶水语言,优势就在于,可以联合众多工具发挥作用。这其中最常用的我称为七种兵器。


find  过滤出目标文件    剑意:长生剑,以所有文件为源头,过滤出感兴趣的一部分文件
grep  过滤出目标行    剑意:孔雀翎,这个厉害,一下命中要害过滤出所需的行内容
awk 文本处理工具    剑意:碧玉刀,将行内容大块切分组合
cut 文本截取工具    剑意:霸王枪,简单截取使用较方便
sed 文本替换工具    剑意:离别钩,将不需要的勾出替换
tr  字符替换工具    剑意:小李飞刀,独门技艺只意识字符流,不分行处理
xargs 参数列表转换    剑意:多情环,不用for/while也能循环,舍我其谁

 

  其中最重要的grep,awk,sed都支持正则表达,强大的工具为shell提供了基本保证。

  当然除了这几个以外还有很多有用的工具,不一一列举。 


2)管道 无疑是UNIX最具革命性的特征之一。
     主要特点:

.不需要使用中间变量,不占用多于空间
.粘合众多工具,将积木式的工具构造方法发挥到极致


  数据还在管道中流动,经过不同工具的重新铸造,可以无穷变化最终得到理想的形态,实在是一门艺术。
  UNIX中常讲“一切都是文件”,对于管道来说一切都是流,没错,JAVA中流的概念与之很相似。

 

【SHELL之外】

SHELL是很强大,但是毕竟是比较简单直接的胶水语言,有时候不得不使用另外一对脚本语言中的“雌雄双剑” Perl / Python。

      先说Perl,大家谈论到最多的就是他完备的正则表达能力,由于出现得最早,可以说已经成为了一种标准。

      个人感觉Perl在两种情况下,上面的七种兵器无能为力。

              一个是需要使用“非贪婪”的正则语义时。

              另一个是需要协同操作两个以上文件时。

       再看下Python,她是首个在脚本语言中使用对象概念的语言。经过多年的积累,特别是Google的强力支持,已经有了非常大的标准库,在与网络相关的脚本编程时是首选。


  下面是几本看过的不错的书:


  《高级Bash脚本编程指南》 目前只有电子版网上很容易找。涉及到Bash的细节非常深入。

  《Linux Shell脚本攻略》 一个20岁的印度天才的作品,值得一读。
  《正则指引》                关于正则表达内容全面翔实,国人原创精品,真的不错。

  《Perl语言入门》          被称为“小骆驼书”,对于100行以内的编程足够了。不行再上“大骆驼”

  《Python基础教程》      这本书的精华是后面的实战项目。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值