2012年2月2日

Shell编程-awk

摘要: 简介awk 是一种对立的编程语言,集成于所有UNIX/Linux中,这个名字是它创建者的名字首字母组成的 Alfred Aho,Peter Weinberger, and Brian Kernighan。awk的基本语法普通模式awk '/pattern/{action}' files其中patter是一个正则表达式,action又是一系列命令,对于满足匹配的文本执行一些动作,files表示待操作的文件,如果不指定,则输入是STDIN。如果不指定pattern,则对所有文件的每一行都执行action。表达式模式当在awk中使用比较操作符时,使用下面的语法模式,详见后面。awk 阅读全文

posted @ 2012-02-02 09:20 perlman 阅读(17049) 评论(0) 推荐(4) 编辑

2012年1月30日

perl特殊符号

摘要: Perl的特殊符号 @ 数组 $x{} x名字前面是美元符号($),后面是花括号({}),则其为 hash 元素 % 要引用整个 hash,使用百分号(“ )作为前缀。前面几页中使用的 hash 的名字为%family_name。 $! 系统产生的一些可读的信息,也可能是出错的信息 $_ 子函数参数变量自己本身 @_ 子程序的私有变量 &x 调用子函数x <> 数据输入.如果没有指定文件名,则其从标准输入流中自动打开和关闭一系列文件进行读入 Perl默认的内部变量 $- 当前页可打印的行数,属于Perl格式系统的一部分 $! 根据上下文内容返回错误号或... 阅读全文

posted @ 2012-01-30 10:53 perlman 阅读(5235) 评论(1) 推荐(3) 编辑

perl帮助系统

摘要: 总帮助模块帮助函数帮助内置函数帮助特殊变量帮助运算符帮助正则表达式帮助完整列表 perlsyn Perl syntax perldata Perl data structures perlop Perl operators and precedence perlsub Perl subroutines perlfunc Perl built-in functions perlopentut Perl open() ... 阅读全文

posted @ 2012-01-30 09:32 perlman 阅读(489) 评论(0) 推荐(0) 编辑

2012年1月17日

Shell编程-Sed

摘要: sed - stream editorsed 是面向流的,为该命令提供的所有输入被其处理后都到达STDOUT,sed命令并不改变输入文件sed语法格式sed 'command list' filenames 其中command list是一系列命令清单 filenames表示要处理的文件,如果不指定文件,那么将从STDIN读入。command list的格式为/pattern/action正则表达式使用的基本元字符(Metacharacters). Match any single character except a newline* Match zero or more o 阅读全文

posted @ 2012-01-17 09:43 perlman 阅读(1615) 评论(0) 推荐(0) 编辑

perl调试

摘要: 启动调试perl -d test.pl 阅读全文

posted @ 2012-01-17 09:39 perlman 阅读(363) 评论(0) 推荐(0) 编辑

2012年1月16日

Shell命令成功是一般返回0

摘要: 下面一段代码my $cmd = "scp $source $dest";`$cmd` or die $!在执行这段代码的时候,经常会出现这样一个错误,形如illegal seek xxx,但是会发现其实文件已经正确的拷贝过去了。什么原因呢?因为`$cmd`的返回值并不能表示错误信息,也就是说这个命令成功的返回值是0,而$!中存储的是前面某个命令的错误代码。详情看这里http://www.megasolutions.net/perl/Illegal-seek-50808.aspx所以这种写法本身就不正确。 阅读全文

posted @ 2012-01-16 15:26 perlman 阅读(3843) 评论(0) 推荐(0) 编辑

2012年1月13日

perl中my和our的区别

摘要: 来自CUperl中our的用法require 5.006 当版本号小于 5.006 的时候,会返回失败,从而导致模块加载失败。 所以它的作用就是保证模块调用环境的 Perl 版本。 our 和 my 一样,都是对变量的声明, 不过 our 声明的是包全局变量, 而 my 声明的是词法变量。 不过,经过 our 声明的变量,它会变得像一个词法变量一样, 其实这也是 our 存在的目的:用来欺骗 strict pragma,使 strict 以为它是一个词法变量,其实却不是。 有一个简单的办法可以理解 our: 1,你就把 our 声明的变量和 my 声明的当成一样。 2,记住 our 和 ... 阅读全文

posted @ 2012-01-13 10:37 perlman 阅读(12206) 评论(0) 推荐(0) 编辑

shell常用命令集合

摘要: 如不加特殊说明,以下命令所使用的文件默认为zdd.txt找出重复的文本行cat zdd.txt | uniq -d扩展一下,找出不重复的行cat zdd.txt | uniq -u=== 阅读全文

posted @ 2012-01-13 09:57 perlman 阅读(378) 评论(0) 推荐(0) 编辑

2012年1月11日

Shell编程 - 流控制

摘要: if语句1 写if语句时不要随意加空格,比如if [ 1<2 ],这是假,而if [ 1 < 2 ]就是真了,因为1和<之间有空格。注意[]与1,2之间的空格是合法的,总结一下就是,Shell中表达式中最好不要加空格,比如a=1, 1<2, 2=2等等,如果加上空格,往往会产生错误。2 使用test,格式:if test expressionif test 1<2then echo "no"else echo "yes"fi 输出yes使用[],格式:if [ expression ] (注意:[]与表达式之间有一个空格)i 阅读全文

posted @ 2012-01-11 14:43 perlman 阅读(485) 评论(0) 推荐(0) 编辑

Shell编程- 文件

摘要: The following is the most frequently used file command1 cat, show file content cat zdd.txt, show content of zdd.txt cat file1 file2 ... filen -n, show line number -b, skip empty line2 wc, count the character, word, and line of a file wc zdd.txt (multiple file is ok, wc file1 file2 ... filen)output: 阅读全文

posted @ 2012-01-11 10:33 perlman 阅读(459) 评论(0) 推荐(0) 编辑

查看UNIX系统版本

摘要: uname -auname -n 查看主机名,等价于hostnameuname -m 查看硬件信息uname -r 查看系统版本号uname -s 查看系统类型经常是uname -sr这样使用,输出如下SunOS 5.10=== 阅读全文

posted @ 2012-01-11 10:04 perlman 阅读(22994) 评论(1) 推荐(1) 编辑

2012年1月10日

关于UNIX TERM

摘要: 原文链接 一个终端机是一个萤幕与一个键盘的组合,其型别有vt100, vt102, vt220,sun, hp, ansi 等。基本上这些型别就是不同公司的不同产品型号,他们之间的差异在於控制游标的方法不同,按键时键盘产生的键盘代码不同,以及是否有彩色能力等。由於设计 先天不良,UNIX无法自动侦测终端机的型别,必须以人工的方式告知。告知的方法就是设定一个环境变量TERM。UNIX里面需要控制萤幕的程式都会参考 此变量。设定此变量的方法如下:1. 在csh, tcsh下用: % set term = vt100这里要说明的是为什麽刚刚说要设定的变量名是大写(TERM),而这里却是小写;另外一个 阅读全文

posted @ 2012-01-10 15:32 perlman 阅读(992) 评论(1) 推荐(0) 编辑

解决vim没有颜色的办法

摘要: 问题起因,在两台host上用同样的方法编译了同样的vim73包,可是运行的时候,一台host上vim有颜色,而另一台却没有颜色。于是开始侦查。首先打开vim,输入命令 scriptnames看看vim加载了哪些脚本。:scriptnames输出入下 1: /home/users/xxx/.vimrc 2: /home/users/xxx/tools/share/vim/vim73/colors/darkblue.vim 3: /home/users/xxx/tools/share/vim/vim73/syntax/syntax.vim 4: /home/users/xxx/tools/... 阅读全文

posted @ 2012-01-10 10:32 perlman 阅读(48030) 评论(4) 推荐(5) 编辑

putty-不输入密码直接登陆

摘要: 原文链接 http://hi.baidu.com/realvnc/blog/item/1cdb77f35163ec49342accbd.html对于从事网站设计的人员来说,使用SSH登录远 程服务器那是非常平常的事情,因为登录后可以进行一些文件及程序的快捷操作,如远程打包网站文件,复制文件夹,删除文件夹等,比直接使用flashfxp 这样的ftp软件要方便的多,而如果你使用的是linux主机会非常方便的设置登录ssh服务器的快捷方式。这里要说的是windows系列客户端,最常 用的就是大名鼎鼎的putty。 看到网上有许多教人不用口令直接登录服务器的方式,原理都是使用交换私匙的方式,设置麻烦不 阅读全文

posted @ 2012-01-10 09:46 perlman 阅读(4630) 评论(0) 推荐(0) 编辑

vim中添加perl注释无法对齐的解决办法

摘要: 在使用vim编辑perl脚本时,每当输入#号时,#号都会跑道行首,在CU上问了一下,有个办法可以用。在.vimrc中加入如下几行"Only do this part when compiled with support for autocommands.if has("autocmd") filetype plugin indent onelse set autoindentendif "has("autocmd") 阅读全文

posted @ 2012-01-10 09:33 perlman 阅读(465) 评论(0) 推荐(0) 编辑

2012年1月9日

putty-设置退格符

摘要: 如果退格符不好用(显示为乱码),可以在putty中做如下设置。 阅读全文

posted @ 2012-01-09 10:48 perlman 阅读(1701) 评论(0) 推荐(0) 编辑

2012年1月6日

perl文件操作

摘要: 打开文件使用三参数的形式打开文件,这样非常便于区分模式和文件名,perl 5.6之后的版本都支持这种方式。#Open the 'txt' file for readingopen FH, '<', "$file_name.txt" or die "Error:$!\n";#Open the 'txt' file for writing. Creates the #file_name if it doesn't already exist #and will delete/overwrite a 阅读全文

posted @ 2012-01-06 09:16 perlman 阅读(4386) 评论(0) 推荐(0) 编辑

2012年1月5日

使用ssh无需密码

摘要: 原文链接 http://bbs.chinaunix.net/thread-2246468-1-1.html有些时候,我们在复制/移动文件到另一台机器时会用到scp,因为它比较安全。但如果每次 都要输入密码,就比较烦了,尤其是在script里。不过,ssh有另一种用密钥对来验证的方 式。下面写出我生成密匙对的过程,供大家参考。 第一步:生成密匙对,我用的是rsa的密钥。使用命令 "ssh-keygen -t rsa" [user1@rh user1]$ ssh-keygen -t rsa Generating public/private rsa key pair. Ente 阅读全文

posted @ 2012-01-05 09:49 perlman 阅读(473) 评论(0) 推荐(0) 编辑

2011年12月28日

Shell十三问总结

摘要: 我的系统中有哪些shell?可以查看/etc/shell这个文件。=== 阅读全文

posted @ 2011-12-28 10:21 perlman 阅读(271) 评论(0) 推荐(0) 编辑

2011年12月27日

or与||

摘要: or比||优先级低,除此之外,两者无区别。下面代码输出什么?my $a = 0; $a = $a or 1;print $a, "\n";$a = $a || 1;print $a, "\n";输出:01为什么呢?因为||, =, or 这三者优先级从左至右逐渐降低。所以,这样写可以。chomp(my $filename = shift( @ARGV ) || <STDIN>);但是这样写就不行chomp(my $filename = shift( @ARGV ) or <STDIN>);会出现如下错误Can't modi 阅读全文

posted @ 2011-12-27 09:41 perlman 阅读(308) 评论(0) 推荐(0) 编辑

2011年12月26日

perl获取日起和时间

摘要: 注意:localtime获取的年份是相对于1900的偏移,需要加上1900,而localtime获取的month范围是0-11,需要加1。my ($sec,$min,$hour,$day,$mon,$year,$wday,$yday,$isdst) = localtime(); $year += 1900; $mon++;my $date = "$year-$mon-$day"; print $date, "\n";== 阅读全文

posted @ 2011-12-26 15:47 perlman 阅读(1160) 评论(0) 推荐(0) 编辑

perl正则表达式杂项

摘要: $也能匹配\n见Perl语言入门,page 132, 注释61 /^.*$/能匹配"\n"么?能!因为$不仅能匹配行尾,也能匹配\n2 /^.*$/能匹配"b\n"么?能!.能b匹配. \n匹配$3 /^.*$/能匹配"\nb"么?不能!为什么?因为默认情况下,.不能匹配\n,把模式改一下变成/^.*$/s就可以了,/s表示.能匹配任意字符,包括\n====多行匹配/m看一个例子,这段代码输出hellomy $text = "hello, world,\nhello zdd,\nhello autumn";whil 阅读全文

posted @ 2011-12-26 13:36 perlman 阅读(1235) 评论(3) 推荐(0) 编辑

perl数据处理

摘要: 来自CU的一道题有一组数据 ID 1 1 2 3 4 ID 2 1 2 3 4 ID 3 1 2 3 4 想变成 ID 1 1,2,3,4 ID 2 1,2,3,4 ID 3 1,2,3,4 请问该怎么写代码?谢谢了。我的代码,好复杂!use strict;use warnings;sub test { open SOURCE, '<', "d:/code/abc.txt" or die $!; open DEST, '>', "d:/code/def.txt" or die $!; my $items = q 阅读全文

posted @ 2011-12-26 09:38 perlman 阅读(1075) 评论(0) 推荐(0) 编辑

2011年12月20日

时刻检查函数的返回值

摘要: 比如下面这段代码会产生一个奇怪的错误,print() on closed filehandle FILE at d:\code\test.pl line 6.sub testdir { open FILE, ">>z:/zdd" ; print FILE "Hello, world\n";}其实根本原因是open函数失败了,因为z:盘根本不存在,但是我们没有检查open的返回值,所以这个错误很隐讳,正确的写法应该是sub testdir { open FILE, ">>z:/zdd" or die $!; pr 阅读全文

posted @ 2011-12-20 09:36 perlman 阅读(603) 评论(0) 推荐(1) 编辑

2011年12月15日

Perl中use和require的区别与联系

摘要: 请看这里 阅读全文

posted @ 2011-12-15 09:09 perlman 阅读(301) 评论(0) 推荐(0) 编辑

2011年12月14日

Putty退出全屏

摘要: 將鼠標移動到屏幕左上角,然後單擊左鍵即可出現菜單,在菜單中選擇退出全屏。 阅读全文

posted @ 2011-12-14 09:15 perlman 阅读(519) 评论(0) 推荐(0) 编辑

2011年12月8日

perl中s///和tr///的区别

摘要: 请看这里 阅读全文

posted @ 2011-12-08 12:37 perlman 阅读(460) 评论(0) 推荐(0) 编辑

od命令

摘要: 原文链接语法:od [选项] 文件…命令中各选项的含义:- A 指定地址基数,包括:d 十进制o 八进制(系统默认值)x 十六进制n 不打印位移值- t 指定数据的显示格式,主要的参数有:c ASCII字符或反斜杠序列d 有符号十进制数f 浮点数o 八进制(系统默认值为02)u 无符号十进制数x 十六进制数除了选项c以外的其他选项后面都可以跟一个十进制数n,指定每个显示值所包含的字节数。说明:od命令系统默认的显示方式是八进制,这也是该命令的名称由来(OctalDump)。但这不是最有用的显示方式,用ASCII码和十六进制组合的方式能提供更有价值的信息输出。下面是一个例子od-Ax-tcx1 阅读全文

posted @ 2011-12-08 10:26 perlman 阅读(1847) 评论(0) 推荐(0) 编辑

2011年12月3日

Perl处理文本一例

摘要: 在CU上看到的一个题,觉得不错,就记录下来了。原文链接在这里我完全是门外汉,最近有一个文档要处理,如何用perl来做?谢谢了 一个文本文件里有多行如下,数量不定 Lif(__amscript_cd("www.xizi.com")){__amscript_wc('#closead {display:none;}');}; Lif(__amscript_cd("www.xizi.com")){__amscript_wc('#footer_win {display:none;}');}; Lif(__amscript_cd(&q 阅读全文

posted @ 2011-12-03 14:22 perlman 阅读(4618) 评论(0) 推荐(0) 编辑

Perl最佳实践读书笔记-第四章(值和表达式)

摘要: 字符串界定符perl中的字符串界定符有很多,这导致使用的时候经常造成混乱,下面是一些好的原则如果想在字符串直接量中插入变量,那么请使用双引号字符串。print "my name is: $name";如果无需插入变量且没有需要转义的字符,那么请使用单引号字符串。print 'Please go to www.google.com';如果字符串直接量无需插入变量且其中包含单引号,那么请使用q{}。my $string = q{Don't use single quote here!};如果满足上一条且字符串中还包换{},那么改用其他的界定符即可比如q[ 阅读全文

posted @ 2011-12-03 14:10 perlman 阅读(364) 评论(0) 推荐(0) 编辑

perl中的q,qq,qw,qr,qx

摘要: 从网上看到的一篇文章,觉得不错,转过来了。在perl语言中,几个特殊而常用的符号:q是单引号qq是双引号qw单词列表引号qr正则表达式引号qx反引号其中qq,qw又较为常用。qq{foobar}的意思为意思为双引号字符串,可内插变量,相当于"foobar"qw{foobar}的意思为用空格分解字符串,得到列表,相当于如下语句split('','foobar')得到的结果是'foo','bar'q和qq运算符的特点:q和qq必须是一个标识符,而不是标识符的部分。例如:q(abc)用()作为分界符q(abc)用() 阅读全文

posted @ 2011-12-03 13:54 perlman 阅读(7516) 评论(0) 推荐(0) 编辑

2011年11月29日

Perl最佳实践第五章(变量)

摘要: place holder 阅读全文

posted @ 2011-11-29 09:19 perlman 阅读(317) 评论(0) 推荐(0) 编辑

2011年11月28日

List::Util

摘要: use List::Util;use List::Util qw(first max maxstr min minstr reduce shuffle sum);sub test { my @numbers = (1, 2, 3, 4, 5, 6, 7); # Get first element my $first_number = first { defined($_) } @numbers; print $first_number, "\n"; # Get max element my $max_number = max @numbers; pri... 阅读全文

posted @ 2011-11-28 16:52 perlman 阅读(1038) 评论(0) 推荐(0) 编辑

perl中的map和grep

摘要: map语法:map EXPR, LISTmap BLOCK, LIST语义:对于LIST中的每个元素执行EXPR或者BLOCK,如果返回值存储在list中,则表示处理后的list,若返回值存储在scalar中,则表示处理后的list中元素个数。下面是几个例子.单词首字母大写sub test { my @names = ( 'jacob', 'alexander', 'ethan', 'andrew', ); my @new_names = map(ucfirst, @names); foreach my $name... 阅读全文

posted @ 2011-11-28 16:05 perlman 阅读(3801) 评论(0) 推荐(1) 编辑

Perl最佳实践第三章(命名规则)

摘要: 标示符变量名采用 形容词_名词 的格式命名,多个单词之间用下划线分隔,比如$next_record$total_score$root_node对于查表的数组或者哈希,采用 xxx_of, xxx_for的命名方式,也就是在末端加上介词,比如。my %title_of;my %ISBN_for;my @sales_from;这种写法会使后面的代码可读性极好。while (my $month = prompt -menu => $MONTH_NAMES) { for my $book (@catalog) { print "$ISBN_for{$book} $title_of{.. 阅读全文

posted @ 2011-11-28 11:28 perlman 阅读(1617) 评论(0) 推荐(0) 编辑

2011年11月27日

Perl最佳实践读书笔记-第二章(代码部署)

摘要: 代码风格最重要的是一致性!找出一种你或你的团队喜欢的风格,并坚持下去!括号方式使用K&R风格的括号,即把开口大括弧放在控制该代码块的行尾,接下来的代码缩进,然后在独立的一行放置闭口大括号。如下for my $name (@names) { for my $word ( anagrams_of(lc $name) ) { print "$word\n" ; }}列表元素占据多行时,按如下方式安排my @names = ( 'Damian', # 主键 'Matthew', # 明义 'Conway', # 一般类或类别) 阅读全文

posted @ 2011-11-27 10:29 perlman 阅读(778) 评论(0) 推荐(0) 编辑

Perl最佳实践读书笔记-第一章

摘要: 本篇展开的小项有待完善,需待读书深入时回头总结。编码风格的三个主要目标:强健性,效率性,可维护性。强健性让初次犯错的机会减至最少比如用_ref后缀来命名引用,就可以避免将$array_ref->[$n]写成$array_ref[$n]。检查不正确的边界情况避开无法适当伸缩的构件如何处理是失败如何应对失败改善程序代码的结构效率性一个关键点是利用perl的优势并且避开perl的劣势,这就需要对perl非常熟悉才行,加油!比如一次性读入一个几十GB的大文件,仅仅是为了将其中的A替换为B,这么做就不如逐行读入并处理来的高效。可维护性通常来说,维护代码的时间至少是编写代码时间的4倍,所以为了你的代 阅读全文

posted @ 2011-11-27 10:07 perlman 阅读(569) 评论(0) 推荐(0) 编辑

2011年11月23日

使用mailx发送邮件

摘要: mailx是UNIX系统上用来处理邮件的工具,使用它可以发送,读取邮件。下面看看如何使用它来发送邮件。发送格式mailx -s subject user@xxx.com < message_file假设邮件内容存储于msg文件中,那么可以用如下方法:mailx -s "test mail" zdd@163.com < msg或者cat msg | mailx -s "test mail" zdd@163.com多个收件人之间用逗号分隔cat msg | mailx -s "test mail" zdd@163.com,zd 阅读全文

posted @ 2011-11-23 16:46 perlman 阅读(26988) 评论(0) 推荐(1) 编辑

JavaScript总结

摘要: 1 使用MyEclipse开发2 静态页面直接preview即可,动态页面需要发布后才能看。3 发布前先启动tomcat4 启动完tomcat然后deploy5 再浏览器中输入 http://localhost:8080/h1/1.jsp 可以查看页面6 div7 head 和 body8 jquery中的选择器 阅读全文

posted @ 2011-11-23 10:21 perlman 阅读(145) 评论(0) 推荐(0) 编辑

2011年11月19日

如何在html中使用Javascript

摘要: 将Javascript嵌入到HTML中HTML中的<script>标签用于把javascript插入到HTML页面中,如下,将下面内容保存为test.html,双击运行即可看到Hello, World!<html> <body> <script type="text/javascript"> document.write("Hello, World!") ; </script> </body></html>在哪里放置javascript放在<body>< 阅读全文

posted @ 2011-11-19 10:57 perlman 阅读(410) 评论(0) 推荐(0) 编辑

导航