2015年1月29日星期四

Perl6-One-Liners

perl6-one-liners

整理连续空行
perl6 -e '$*ARGFILES.slurp.subst(/\n+/, "\n\n", :g).say' example.txt

添加行号
perl6 -ne 'say $*ARGFILES.ins ~ " $_"' example.txt

总行数
perl6 -e 'say lines.elems' example.txt

随机打乱每一行的各个列
perl6 -ne '.split("\t").pick(*).join("\t").say'

对每一行的所有列求和
perl6 -ne 'say [+] .split("\t")'

数值格式
perl6 -e 'say pi.fmt("%.10f");

最大公约数
perl6  -e 'say [gcd] (2,4,6)'

阶乘
perl6 -e 'say [*] 1..5'

最小公倍数
perl6 -e 'say 20 lcm 15'

全排列(不重复的)
perl6 -e 'say .join for [1..3].permutations'

集合子集
perl6 -e '.say for <1 2 3>.combinations'

随机选取 [5, 15) 区间的10个元素,可重复
perl6 -e '.say for (5..^15).roll(10)'

检查是否质数
perl6 -e 'say "7 is prime" if 7.Int.is-prime'

IP地址转换成整数
perl6 -e 'say :256["127.0.0.1".comb(/\d+/)]'

整数转成IP地址
perl6 -e 'say join ".", @(pack "N", 2130706433)'

进制转换
perl6 -e 'say 255.base(16)'

十进制转十六进制对照表
perl6 -e 'say sprintf("%3i => %2x", $_, $_) for 0..255'

偶数,整除
perl6 -e '(1..100).grep(* %% 2).say'

字符串长度
perl6 -e '"storm in a teacup".chars.say'

替换
perl6 -pe 's:g/ut/foo/' example.txt

打印前5行
perl6 -e '.say for lines[^5]' example.txt

该行出现指定的多个字符
perl6 -ne '.say if .comb (>=) <a e i o u>' example.txt

拆字
$ echo "#ffff00" | perl6 -ne '.comb(/\w\w/).say'
ff ff 00

没有评论:

发表评论