-1

我有一个包含 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";

如何将特定行(例如第 60 行)替换为@input[0]?例子

@input[0] = "abcd";

第 60 行是"SSID=test"我想要的"abcd"

4

2 回答 2

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;
于 2013-06-14T14:00:56.433 回答
0

尝试这个 :

perl -i -pe 'if ( $. == 60 ) { print whatever;}' filea.txt 
于 2013-06-14T16:31:33.220 回答