perl命令行使用技巧

perl命令行使用技巧

ID:8145789

大小:49.00 KB

页数:3页

时间:2018-03-07

perl命令行使用技巧_第1页
perl命令行使用技巧_第2页
perl命令行使用技巧_第3页
资源描述:

《perl命令行使用技巧》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Perl命令行使用技巧Perl在设计之初就是为了能够整合shell、awk、sed、sort、grep等工具的目的而出现的,我们习惯在unix/linux下使用系统为我们提供的一系列优秀的工具进行文本处理、文件管理,那是便捷并且是可行的。但是在windows下我们在日常办公过程中,如果需要进行比较复杂的文本处理,是否必须把文本粘贴到linux下,用我们习惯的方式进行处理,或者是使用ultraedit、word之类的工具想其他办法处理呢?如果你熟悉perl的话,那么只需要安装perl的win32版本,unix下常规的awk、sed、grep、sort等工具的功

2、能是完全可以实现的。并且只要掌握以下的一些方法,所有的文本处理都可以放在一个perl解释器进程中完成,不需要另外调用awk或sed等,减少了shell与awk数据传递的麻烦。下面我就简单的举几个例子进行说明:1.一个命令行模拟awk:#将第一列和倒数第二列相加#等同awk脚本:awk'{i=NF-1;print$1+$i}'perl-lane'print$F[0]+$F[-2]'举例1:如果有文件raytest.txt12345678使用命令行:perl-lane'print$F[0]+$F[-2]'raytest.txt执行后结果为:412简要说明:l-l

3、参数是在打印每一行运算结果后加上行结束符(默认为换行符),如果没有此参数,上例的输出就会是:412l-a与-n参数一起使用时开启类似awk的自动分割输入行的功能,默认使用空格或tab分割,可以使用-F参数指定分割符。分割的内容放入特定的数组@F。l-n参数开启按行读取的功能,类似awk的方式一行行从文件中读取l-e参数将后边的串内容作为perl代码处理2.打印文件中的一系列行:a)打印行号范围内的内容:#打印文件中15到17行的内容perl-ne'printif$.>=15;exitif$.>=17;'#或者更为简单perl-ne'printif15..17

4、'简要说明:l$.为perl中的默认变量,存储当前的行号,与awk中的NR意义相同。l15..17表示范围,“..”操作符指示范围l默认读入的行放置在$_中,print的默认处理对象也是$_a)打印文件中配对标识之中的内容:#打印文件中行内容为“BEGIN”和“END”之间的行内容perl–ne‘printif/^BEGIN$/../^END$/简要说明:l//是指示使用正则表达式,这里标识一行中只有BEGIN或END的行。正则表达式默认匹配$_。2.sed的功能,文件编辑:a)在线替换文件中特定内容#将所有.c文件中的“ray”替换为“pac”,并且将源文

5、件备份为.bakperl-p-i.bak-e's/brayb/pac/g'*.c简要说明:l-i参数表示原地修改文件(同sed中的-i),如果提供可选参数,则使用它为后缀建立源文件备份。l-p参数基本同-n参数,只是在处理完成后插入一条print,将处理结果打印出来,同sed的行为l正则表达式中b匹配单词边界,b)删除文件中的特定行:#删除文件中的前10行:perl–ne–i.old'printunless1..10'ray.txtc)处理文件中的数字:#将.c和.h文件中所有的数字全部加一:perl-i.tiny-pe's/(d+)/1+$1/ge

6、'*.[ch]简要说明:l正则表达式中d+代表匹配数字(长度不限),$1是指前边的第一个表达式所匹配上的内容d)在正则表达式中进行运算:#将文本中所有的“ray”用小于611的随机数替代perl–i.bak–pe“s/ray/intrand(611)/ge”*.txt简要说明:l正则表达式中的intrand(611)是指取小于611的随机数,并取整l正则表达式的命令字/e表示此表达式中有需要perl来处理的语句,并且将处理结果作为表达式内容e)在文件中插入4位数字的行号:perl–i.bak-pe'$_=sprintf"%04d%s",$.,$_'ray.

7、txt1.文件管理功能:a)批量文件重命名:#将所有.txt文件的首字母修改为大写ls*.txt

8、perl–ne‘chomp;printf“mv$_%s”,ucfirst$_”或者直接:ls*.txt

9、perl–ne‘chomp;rename$_,ucfirst$_”简要说明:l第一个表达式只是打印对应的shell命令,需要使用者获得输出然后执行l第二个表达式直接调用perl的rename函数,对文件重命名后记:仔细研究perl,可以为我们的运维工作带来很多方便,单行的perl指令往往比调用awk、sed更为方便快捷。下面是perl的一些命令行参数列表,供大

10、家参考:整洁性-w打开警告-Mstrict打开严格编

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。