微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

常用 perl 单行命令模式

========= 比配次数计算 (字符重复出现次数)================
@matches = "balata" =~ /.a/g;  # Now @matches = ("ba","la","ta") 用数组存下比配到的信息;
$count = scalar @matches         # Now $count = 4;  scalar 取出数据长度,就是比配到的次数

========= 单行命令模式下,找出信息出现的次数;============
ps -ef | perl -0ne 'print s/a//gi."/n"'     # 参数-0 零,表示把所有行都看成一行; /g全比配,i忽略大小写

========= 单行命令模式 只打指定列  ============
echo 'hello:the:world:!:i:love:you:!' | perl -F: -lane 'print "@F[0..1]   $F[-1]"'
# -F: 指定分隔符为:
# @F[0..1] 表示分隔域 0~1
# $F[-1] 特指倒数 第一个

========= 单行命令模式 打印指定行  =================
ps -ef | perl -lane 'print if $. == 1..10'      # $. This means that it's current line

========= 单行命令模式 打印指定行 与 列  =================
ps -ef | perl -lane 'print "@F[0..1]   $F[-1]" unless ($. == 1..10)'   # $. This means that it's current line

========= 把每一行都当作 perl 的表达式 如 =================
echo "8*8" | perl -lane 'print eval($_)' # result is  64

========= 文件按行反转  =================ps -ef | perl -e 'print reverse <>'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐