Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 如何按字母顺序添加记录_Perl_File - Fatal编程技术网

Perl 如何按字母顺序添加记录

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,

文件包含(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, $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+$/,您可以将此测试添加到循环:
下一步