perl模块_List::Util

1加2加3加4 … 加到100,试了一下还是perl最快
需要用到perl的List::Util模块.

  1. [root@centos perl]# more plus.pl
  2. #!/usr/bin/perl -w
  3. use strict;
  4. use List::Util qw[sum];
  5. my $t = sum(1..100);
  6. print "$t\n";
  7. [root@centos perl]# perl plus.pl
  8. 5050

shell取巧的方法也很简单,利用seq与sed和bc
seq生成数字,sed将空格替换为加号,通过管道传递给bc进行加法运算.

  1. [root@centos perl]# seq -s " " 100|sed 's/ /+/g'|bc
  2. 5050

sed常用命令整理

买了本书unix shell 范例精解(第四版),把其中学到的sed总结一下,平时需要查阅的时候方便一点~

  1. sed '1,3d' file //删除1-3行
  2. sed '/[Aa]bc/p' file //打印包含Abc或者abc的行
  3. sed '/ABC/d' //删除包含ABC的行
  4. sed '/ABC/!d' //不删除包含ABC的行
  5. sed '5,$d' //从第五行到最后一行全部删除
  6. sed 1q  //显示第一行
  7. sed 's/$/.../g' //每行的最后面添加 ...
  8. sed 's/d.(sk)/1&/g' //满足d*sk的单词,在单词前添加sk
  9. sed 's/<[^>]*>//g' //去除html标签
  10. sed '/ABC/a123' //在包含ABC的行后面添加一行数值为123的行
  11. sed '/ABC/i123' //跟a不同的是i是插入当前行的前面
  12. sed '/ABC/c123' //包含ABC的行将更改为123
  13. sed '/ABC/{n;s/123/ABC/g}' //精确匹配包含ABC的下一行,将123全部替换成ABC
  14. sed '/ABC/{s/A/a/}' //在包含ABC的行将A替换成a
  15. sed -e '/ABC/h' -e '$g' //将包含ABC的行复制,在最后一行添加.
  16. sed -e '/ABC/{h;d}' -e '/123/G' //将包含ABC的行复制并删除,在包含123的行后添加.
  17. g等于在当前行覆盖,G是在符合条件的行后新增加一行.
  18. sed 's/^/ /g' //每行前面增加一个空格
  19. sed 's/.(.)$/*1/' //将倒数第二位换成*
  20. sed '/ABC/!s/1/*/g' //在不包含ABC的行里,将所有的1替换成*
  21. sed 's/1|2|3/*/g' //在GNU里将不管是1或2或者是3替换成*

准备学点perl来处理数据

真实恼火,等了N久等不到一本sed与awk(第二版),当当;亚马逊;蔚蓝;新华书店;全找遍了,竟然找不到..无奈上淘宝找了一本,等店主答复呢!
如果还不行,那就只能看perl了..手上刚好有一本perl入门,不过就是怕看shell,awk,sed,再来个perl,就全乱了…

sed常用命令-2

去除所有空格或TAB
sed ‘s/[ \t]//’

去除所有行前面的空格或TAB
sed ‘s/^[ \t]*//’

每行的行首增加固定的空格 例如3个空格
sed ‘s/^/3个空格/’

精确到行 匹配
只有包含adfa的行才发生替换行为,将adfa替换为ADFA
sed ‘/adfa/s/adfa/ADFA/g’
Read more »

sed常用命令

  1. root@debian:~# cat 123
  2. aaaaaaaaaaaaaaaaa
  3. bbbbbbbbbbbbbbbbb
  4. ccccccccccccccccc
  5. ddddddddddddddddd
  6. 11111111111111111
  7. 22222222222222222
  8. 33333333333333333
  9. 44444444444444444
  10. abcd1234
  11. 1234abcd
  12. AaAaBbBbCcDd

Read more »

2 12»