========= 比配次数计算 (字符重复出现次数)================
@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 <>'
--转自