我想这不是编码(比如说ISO 8859-1和UTF-8),而是行尾(CR,LF和LF)。
如果您使用chomp并打印\n“,您可能会将行尾转换为平台本机的行尾。
我想你的剧本最好是这样写的(
未经测试的
):
#!/usr/bin/perl
use strict;
use warnings;
open ($old, '<', 'eventlog.txt') or die 'Could not open eventlog.txt';
open ($new, '>', 'eventlog_nodatetime.txt')
or die 'Could not open eventlog.nodatetime.txt');
$\ = "\n";
while (<$old>) {
chomp;
s/^(\S+\s+\S+\s+)\S+\s+(.*)/$1$2/;
print $new;
}
close $old;
close $new;
或
perl -pe 's/^(\S+\s+\S+\s+)\S+\s+(.*)/$1$2/' eventlog.txt >eventlog.nodatetime.txt
或者用一个接头在一个裂口上?
或者…