-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 -lane 'print "@F[-2,-1]" if $F[-2] && $F[-1];' f1.txt >f2.txt
于 2012-08-09T04:10:30.000 に答える
0

perl はよくわかりませんが、任意の言語の行から必要な文字列を抽出するには、次の正規表現を使用します。

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

編集:

正規表現はその特定のファイル形式に合わせて調整されていると誰かが述べたように、これはより柔軟で、任意の数のスペースで区切られた最後の 2 つの文字列を取得します。

\s+(\S+)\s+(\S+)$
于 2012-08-09T04:04:28.747 に答える