脚本命名change.pl,采用传参的方式:
open(DATA,"<$ARGV[0]") or die "FAILED: Cant open file!!!";
open(NDATA,"+>out.txt");
while(<DATA>){
chomp;
print NDATA $_;
close(DATA);
close(NDATA);
修改脚本权限,添加可执行权限
chmod +x change.pl
运行方式:
./change.pl infile.txt
很简单的脚本,没什么说的,需要注意的就是chomp去掉每行结尾的回车。
支持的点个赞~ 谢谢~~
读入文件每一行合并成一行并输出到另一个文件infile.txt文件内容如下:12345脚本命名change.pl,采用传参的方式:#!/usr/bin/perlopen(DATA,"<$ARGV[0]") or die "FAILED: Cant open file!!!";open(NDATA,"+>out.txt");while(<DATA>){ chomp; print NDATA $_;}close(DATA);close(NDA
转载地址:http://blog.csdn.net/omohe/article/details/1562515
使用
Perl从
文件中读取字符串,一般有两种方法:
1. 一次性将
文件中的所有内容
读入一个数组中(该方法适合小
文件):
open(FILE,"filename")||die"can not open the file: $!";
@filelist=FILE>;
阅读HTML版本:
这是一个文档项目,通过示例脚本和逐行说明来介绍Perl 模块。
该项目的功能之一是,您可以使用它来尝试不同的XPath表达式,并查看XML文档的哪些部分是匹配的。
举例说明的Perl XML :: LibXML已获得。
有的时候,很多fasta文件是这个样子的:
但是,有些软件或者程序只能是一行id,一行序列的读取。这就要求我们需要将上述格式序列多行转一行。下面这段代码可以解决上述问题。
#!/usr/bin/perl
use strict;
use warnings;
my $id;
my $seq;
open IN,"$ARGV[0]" or die "Can't open fasta file!";
local $/ = ">";
<IN>;##第一个">"过掉
while (<I
$
perl -nle 'print uc' file.log
$
perl -ple '$_ = uc' file.log
$
perl -nle 'print "\U$_"' file.log
# 转小写
$
perl -nle 'print lc' file.log
$ per...
Usage: perl [switches] [--] [programfile] [arguments]
-0[octal] specify record separator (\0, if no argument)
-a ...
在处理文本时,常常遇到这样的情况:就是我们需要把两行文本做一个比较,然后选择性输出。而在while(){do something}程序块中默认只能一次读取一行。笔者在这里,举一个简单的例子来说明怎么处理这种情况。
有一个这样一段文本:
a 1 2 3 4
a 5 6 7 8
a 6 7 8 9
a 7 8 9 11
a 7 8 9 12
a 13 12 14 15
a 18 14
问题:合并两个列表(hash)成为一个大的列表(hash)
验证思路:通过使用scalar获取数组中元素的个数来判断是组成一个一维的数组(hash)还是二维的数组(hash)
my @array1 = (1,2,3);
my @array2 = ('a','b','c');
my @array3 = [@array1,@array...
使用perl一行一行读入文件的方法大家都很清楚,可以使用$line=;读入一行或者@lines=;把每行读入到一个数组中。
可以通过重定义分隔符$/来完成一次性读入:
open FILE,"1.txt" or die $!;
local $/=undef;
for my $i (1..50) {
my $filename = "file_$i.txt";
open my $fh, '<', $filename or die "Cannot open file $filename: $!";
my @lines = <$fh>;
close $fh;
foreach my $line (@lines) {
$line =~ s/zzc/zkxc/g;
open my $fh_out, '>', $filename or die "Cannot write to file $filename: $!";
print $fh_out @lines;
close $fh_out;
这个代码会在当前目录下创建名为 "file_1.txt" 到 "file_50.txt" 的文件,并将这些文件中的 "zzc" 字符串替换为 "zkxc",然后写回到相应的文件中。如果文件不存在或无法读写,则会抛出相应的错误信息。