lixiaolong 发表于 2017-5-17 11:14:29

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

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

perl -lane 'print "@F";'//打印第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:"y" while 1'
  
  perl太灵活了。有时感觉它的语法好像充斥着magic一样。
  比如它的map,比如它神奇的切片赋值。(左substr竟然可以当splice用,怎么实现的?)
  
  真是perl在手,文本处理不愁啊。不用学awk,sed了。有perl足以,哈哈。
页: [1]
查看完整版本: 学好perl可以替代记忆许多命令