2016-12-21 3 views
-5

Пожалуйста, дайте любое предложение или фрагмент кода или что-нибудь, что может работать.Perl: список файлов и директорий рекурсивно, но исключить некоторые каталоги и файлы, передаваемые

Я уже пробовал хотел функцию, но как я могу исключить некоторые директории в то время как рекурсии?

+2

Если у вас уже есть код, который вы пробовали, измените свой вопрос и вставить его. Таким образом, мы можем видеть, что вы сделали усилие, и направлять вас к решению (в отличие от написания кода для вас в целом). – stevieb

+0

[Посмотрите на это] (http://stackoverflow.com/questions/36822986/print-files-and-subdirectories-of-given-directory/36823076#36823076) и включите что-то, чтобы показать усилия, вы не можете просто попросите нас написать здесь код. – AbhiNickz

ответ

0

В Linux, вы можете использовать «найти» Linux и команды «Grep» и запустить те команды Linux в Perl, используя QX для хранения результата команды Linux в Perl.

например.

$cmd = "find . | grep -v 'dir1\|dir2\|...\|dirn'"; 
$result=qx($cmd); 

Вышеприведенные комбинаций команд выполните следующие действия:

  1. Команда находки перечислит все директории и файлы рекурсивно.
  2. Труба "|" пройдет результат поиска, чтобы Grep команду
  3. В Grep -v команда выведет на экран только строка не существует в «dir1», «dir2» ... «DIRN», чтобы быть проигнорировано
  4. наконец, команда qx выполнит команды find и grep Linux и сохранит результат в переменной $ result.

Вы можете сделать подобную вещь в Windows. Единственное различие заключается в использовании командной строки Windows.

например.

$result=qx('dir /b/s | find /v "workspace" | find /v "TVM"') 

Вышеприведенная команда перечислит всю директорию рекурсивно, за исключением того, что в каталоге есть имя «рабочая область» или «ТВМ».

+2

csay, добро пожаловать в SO! Мы высоко ценим, что вы потратили усилия на помощь, потому что это целая цель этого сайта. Ваш код будет работать (насколько я вижу), но OP попросил решение Perl. (На самом деле он попросил нас написать код для него, который здесь не очень хорошо принят.) Ваше сообщение хорошо написано, правильно отформатировано и объясняет ваше решение. Мне это нравится - и я хотел, чтобы у OP было такое же отношение! – PerlDuck