F1.txt
boy a s b/b/b see
girl d e w/w/w day
结果
F2.txt
b/b/b see
w/w/w day
各位大家好,请你帮帮我吧。我有一个文件f1.txt我想打印文件中每一行的最后两个字符串。提前谢谢
答案 0 :(得分:2)
这将满足您的需求
use strict;
use warnings;
open my $in, '<', 'f1.txt' or die $!;
open my $out, '>', 'f2.txt' or die $!;
while (<$in>) {
my @fields = split;
splice @fields, 0, @fields - 2;
print $out "@fields\n";
}
<强>输出强>
b/b/b see
w/w/w day
答案 1 :(得分:0)
不要非常了解perl,但要从这个正则表达式的任何语言中提取所需的字符串:
\s([^\s]+\s[^\s]+)$
修改强>
正如有人说正则表达式是针对特定文件格式而定制的,这个文件格式会更灵活,并且最后两个字符串被任意数量的空格分隔开来:
\s+(\S+)\s+(\S+)$
答案 2 :(得分:0)
也许是这样的:
perl -lane 'print "@F[-2,-1]" if $F[-2] && $F[-1];' f1.txt >f2.txt