常用 perl 单行命令模式_VMware, Unix及操作系统讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  VMware, Unix及操作系统讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3414 | 回复: 0   主题: 常用 perl 单行命令模式        上一篇   下一篇 
landy
注册用户
等级:新兵
经验:61
发帖:72
精华:0
注册:2011-12-31
状态:离线
发送短消息息给landy 加好友    发送短消息息给landy 发消息
发表于: IP:您无权察看 2015-7-30 17:16:55 | [全部帖] [楼主帖] 楼主

========= 比配次数计算 (字符重复出现次数)================

@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 <>'


--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论