-5

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 我想打印文件中每一行中存在的最后 2 个字符串。提前致谢

4

3 回答 3

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
于 2012-08-09T04:15:30.530 回答
0

不太了解 perl,但是要从任何语言的行中提取想要的字符串,这个正则表达式会做:

\s([^\s]+\s[^\s]+)$

编辑:

正如有人所说,正则表达式是为特定文件格式量身定制的,这种格式会更加灵活,并且最后两个字符串由任意数量的空格分隔:

\s+(\S+)\s+(\S+)$
于 2012-08-09T04:04:28.747 回答
0

也许是这样的:

perl -lane 'print "@F[-2,-1]" if $F[-2] && $F[-1];' f1.txt >f2.txt
于 2012-08-09T04:10:30.000 回答