我有一个包含80行的文件test.txt。 在perl脚本中,我想用另一个替换60的行。
#!/var/www/cgi-bin/rootperl -w
my $path="/var/www/cgi-bin/test.txt";
open(FICH,">>",$path) || die("Ouverture impossible");
my @input = readline();
chomp(@input);
print FICH "@input[0]\n";
print FICH "@input[1]\n";
print FICH "@input[2]\n";
如何按@input[0]
替换特定行(例如第60行)?示例
@input[0] = "abcd";
第60行是"SSID=test"
我希望它是"abcd"
答案 0 :(得分:0)
只是做:
$input[59] = $input[0];
读取输入文件之后和写入输出文件之前。
注意:访问数组中元素的方式是$input[n]
而不是@input[n]
尝试使用:
use strict;
use warnings;
my @input = readline();
my $file = 'path/to/file.txt';
open my $fh, '<', $file or die "unable to open '$file' for reading: $!";
my @lines = <$fh>;
$lines[59] = $input[0]
open my $fh, '>', $file or die "unable to open '$file' for writing: $!";
print $fh @lines;
答案 1 :(得分:0)
试试这个:
perl -i -pe 'if ( $. == 60 ) { print whatever;}' filea.txt