论坛首页 编程语言技术论坛

学好perl可以替代记忆许多命令

浏览 2628 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2013-05-26  

   某次查看日志时,身边的同事用awk格式化,觉得十分羡慕。之前自学一点perl,想试试perl能否替代awk。结果看了perl的一行程序,发现perl真心十分强大。别说替代awk,grep,其它许多系统命令perl都能很简洁的写出来。


awk:

perl -lane 'print "@F[1..3]";'  //打印第1~3字段


uniq:

perl -lne 'print unless $last eq $_;$last=$_'

 
uniq -c:
   这个稍微麻烦些,因为eval的代码在while()中。而最终统计必须等到读完文件才行,不过用perl照样不是问题,2句搞定.

perl -le 's/(\w)+/$wc{$1}++;$1/eg foreach (<>);print "$wc{$_} $_" foreach keys %wc;'

head:

perl -pe 'exit if $.<50'

sort:

perl -le 'print sort (<>)'

yes(好吧我无聊了)

perl -le 'print @ARGV>0?@ARGV[0]:"y" while 1'

 


  perl太灵活了。有时感觉它的语法好像充斥着magic一样。
  比如它的map,比如它神奇的切片赋值。(左substr竟然可以当splice用,怎么实现的?)


  真是perl在手,文本处理不愁啊。不用学awk,sed了。有perl足以,哈哈。

   发表时间:2013-06-15  
Google一下perl one liner,很多类似经验总结
Awk grep之类的还是有存在价值,写起来飞快,效率也高
0 请登录后投票
   发表时间:2013-06-20  
kotokz 写道
Google一下perl one liner,很多类似经验总结
Awk grep之类的还是有存在价值,写起来飞快,效率也高

的确。单独的程序写起来相对会更加简洁。不过这不是需要学习成本么。
谢谢推荐,刚好今天我也拜读了下perl one liner。学到了很有意思的东西:)
我发现perl还自带了很多有趣的命令。比如a2p(awk2perl)、s2p(sed2perl)、find2perl
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics