Как получить все имена файлов в каталоге и поместить их в текстовый файл с помощью Perl? - PullRequest
0 голосов
/ 15 декабря 2011

Я пытался написать скрипт на Perl, чтобы получить все имена файлов из каталога, а затем поместить каждое имя в текстовый файл.

Мне было интересно, могут ли какие-нибудь хорошие программисты на Perl помочь мне с этим. Извините, если я попрошу вас написать сценарий, но я уверен, что кто-то может понять, как это сделать, всего за несколько строк.

Ответы [ 2 ]

4 голосов
/ 15 декабря 2011

Вы можете сделать:

perl -le 'for (glob(".* *")) {print if -f}'
0 голосов
/ 15 декабря 2011

Если вы действительно хотите сделать это в Perl по какой-то причине:

  opendir DIR, '/some/dirname'         or die "$!";
  open FILE, '>', '/some/outputfile'   or die "$!";
  print FILE "$_\n" while readdir DIR;
  close FILE;
  closedir DIR;

отредактировано, чтобы вставить новые строки в выходной файл ... упс!

Чтобы сделатьэто более универсально, вы можете сделать другие вещи с именем файла, разделив средний бит вверх:

  my $filename = readdir DIR;
  # do something with $filename
  print FILE $filename, "\n";

В первом примере вместо этого используется местоимение Perl $_.

Но, как указал @ Ronin420, гораздо проще сделать ls -a1 /some/dirname > /some/outputfile (при перенаправлении stdout в файл ls также добавит и сам -1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...