Perl 如何按字母顺序添加记录
文件包含(A.txt) 请考虑如果我想添加新的记录“F”-我想在BD和G.P/P中加入 可以使用文本文件并将其视为数组。本例假设没有空行和初始文本:Perl 如何按字母顺序添加记录,perl,file,Perl,File,文件包含(A.txt) 请考虑如果我想添加新的记录“F”-我想在BD和G.P/P中加入 可以使用文本文件并将其视为数组。本例假设没有空行和初始文本: use Tie::File; tie my @array, 'Tie::File', 'filename' or die $!; my $rec = 'f'; for my $i (0..$#array) { if (($array[$i] cmp $rec) == 1) { splice @array, $i, 0,
use Tie::File;
tie my @array, 'Tie::File', 'filename' or die $!;
my $rec = 'f';
for my $i (0..$#array) {
if (($array[$i] cmp $rec) == 1) {
splice @array, $i, 0, $rec;
last
}
}
可以使用文本文件并将其视为数组。本例假设没有空行和初始文本:
use Tie::File;
tie my @array, 'Tie::File', 'filename' or die $!;
my $rec = 'f';
for my $i (0..$#array) {
if (($array[$i] cmp $rec) == 1) {
splice @array, $i, 0, $rec;
last
}
}
一行:
perl -le 'print for(sort((map {chomp; $_} (<>)), "f"))' < infile > outfile
perl-le'print for(sort((map{chomp;$}()),“f”)”outfile
显然,您需要事先处理头文件,但技术非常清楚
例如:
[dsm@localhost:~]$ perl -le 'print for(sort((map {chomp; $_;} (<>)), "f"))' <<EOP
> x
> v
> b
> m
> p
> o
> l
> j
> k
> EOP
b
f
j
k
l
m
o
p
v
x
[dsm@localhost:~]$
[dsm@localhost:~]$perl-le'打印用于(排序((map{chomp;$\u;}()),“f”)'v
>b
>m
>p
>o
>l
>j
>k
>EOP
B
F
J
K
L
M
o
P
v
x
[dsm@localhost:~]$
在一行中:
perl -le 'print for(sort((map {chomp; $_} (<>)), "f"))' < infile > outfile
perl-le'print for(sort((map{chomp;$}()),“f”)”outfile
显然,您需要事先处理头文件,但技术非常清楚
例如:
[dsm@localhost:~]$ perl -le 'print for(sort((map {chomp; $_;} (<>)), "f"))' <<EOP
> x
> v
> b
> m
> p
> o
> l
> j
> k
> EOP
b
f
j
k
l
m
o
p
v
x
[dsm@localhost:~]$
[dsm@localhost:~]$perl-le'打印用于(排序((map{chomp;$\u;}()),“f”)'v
>b
>m
>p
>o
>l
>j
>k
>EOP
B
F
J
K
L
M
o
P
v
x
[dsm@localhost:~]$
我的文件有空行,还有一些空行。@SCNCN2010:您可以将此测试添加到循环中:如果$array[$i]=~/^\s+$/,则下一步代码>我的文件有空行,还有一些空行。@SCNCN2010:如果$array[$i]=~/^\s+$/,您可以将此测试添加到循环:下一步代码>