小动作之perl命令行
Posted 生信人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小动作之perl命令行相关的知识,希望对你有一定的参考价值。
首先说一下题目的含义,所谓小动作,就是指处理一些简单的问题。但是问题虽简单,但可能没有可用常见的Linux命令或者一些高级的复杂的Linux命令没有掌握(如awk,sed),导致不得不大动手脚,打开编辑器,开始写代码解决此问题。这就有点雷大雨小的感觉了。
那么怎么快速简单的解决这些小动作呢?其实还是离不了命令行,只不过这里是perl的命令行。习惯写perl的人,对perl的语言可能了解更多,学会了命令行,以后恐怕复杂的Linux命令可能就不用再去学习了。废话不多说,看看规则吧:
Perl命令行参数
执行控制
-e 可以让Perl程序在Perl命令行上运行.
-M 导入模块
-I 指定目录以搜索标准位置前的模块
-w 打开警告
-Mstrict 打开严格编译指示(pragma)
-a 将数据分割成名为 @F 的数组,.空格是缺省的分隔符
-F 指定分割时把缺省的分隔符改为你想要的。例如把分离号定为非字符使用\W
-i 在适当的位置编辑文件
-c 进行perl的语法检查,但不执行perl命令
-l 使用-l有两个效果,第一自动chomp输入分隔号,第二把$/值付给$\(这样print的时候就会自动在末尾加\n)
-n 使用<>将所有@ARGV参数当作文件来逐行遍历运行,每一行将缺省保存在$_。相当于 while(<>;){ }
-p 使 Perl 隐式地循环遍历指定的文件,同时打印所有的行。自动循环+自动输出,相当于 while(<>) { 脚本; print; }
-C
这个参数编译Perl程序但不会真正运行它.由此检查所有语法错误.每次修改perl程序之后我都会立刻使用它来找到任何语法错误.
-W
它会提示你任何潜在的问题.Perl5.6.0之后的版本已经用usewarnings;替换了-w.你应该使用usewarnings因为它要比-w更灵活.
-M
可以象通常一样引用模块
$perl-MLWP::Simple-e'getstore("http://www.163.com/","163.html")'##下载整个网页
-M+模块名和use模块名一样
以下是一些常用的简单实例
#perl -pi–e ’s/aaa/bbb/’ filename
将文件中aaa替换成bbb,不生成中间文件。记住-i开关为原地编辑文件。
#perl -ne‘print if /^aaaaa/’ filename
输出首行开始是aaaaa的行,执行的是grep的功能。使用了-n,所以按行操作,直到整个文件读完。
# perl-lane 'print $F[0] + $F[-2]'
将每行的第一个元素和倒数第二个元素和输出;使用-a后,因为-n分行读进来,然后-a给数据分割存储到@F数组。
#perl -ne‘print if /^START$/ .. /^END$/’
打印正则中从$start到$end的地方
perl-ne 'print if(15..17)'file
显示15行到17行
#perl -ne‘print scalar reverse $_’ test
给文件中的内容反向排序,比如文件中有fukai,就会变成iakuf
perl-lne'printsubstr($_,0,80)='''file
每行取前80个字符:
perl-lne'printsubstr($_,10)=' ''file
每行丢弃前10个字符
使用命令行操作FASTA序列的高级操作见:
整理自:
[Perl命令行参数: https://wk.b
[Perl命令行应用程序详解_脚本之家: http://m.jb5
[perl 命令行: http://blog.
欢迎关注生信人
以上是关于小动作之perl命令行的主要内容,如果未能解决你的问题,请参考以下文章