0
1440665    8 drwxrwx---   2 smithjoe   smithjoe      1024 May 29 09:01 .
1960596    8 -rwxrwx--x   1 smithjoe   smithjoe      3190 May 29 09:00 ./file1.prl
3197096    8 -rw-rw----   1 smithjoe   smithjoe      1594 May 24 16:11 .dir/documents/file2.prl~
1790401    8 -rw-------   1 smithjoe   smithjoe      3205 May 29 09:01 .dir/files/file3.prl
6754401    8 -rw-------   1 smithjoe   smithjoe      3205 May 29 09:01 .smithjoe/file3.prl
2737401    8 -rw-------   1 smithjoe   smithjoe      3205 May 29 09:01 .smithjoe/folder2

上記のデータを含む配列(@file_path)があります。配列からファイル/ディレクトリ名を抽出できるようにしたい(行の最後の要素です)。foreach ループを使用する必要があります。一度私はそれを行います。ディレクトリをスキップして、新しい配列に保存します。その配列に push コマンドを追加します。

手伝ってください。お願いします。

4

2 に答える 2

2

@mpapec のコメントを繰り返しますが、データを操作しようとするのではなく、取得したデータを修正することで最初にアプローチすることをお勧めします。また、これはファイル名とパス内の空白で詰まると言って、これにプレフィックスを付ける必要があります-そして、他の癖を導入しないことを回避するための適切で信頼できる方法があるかどうかはわかりません。したがって、修正することをお勧めしますデータを処理する前に。

ただし、持っているデータに行き詰まっていて、ファイル名/パスに空白が含まれていないと確信している場合:

my @paths;
foreach my $line (@file_path) {
    my @parts = split /\s+/, $line;
    push @paths, $parts[-1];
}

...途中であなたを取得する必要があります。

于 2013-05-29T14:58:35.060 に答える