-5

提案やスニペット、または機能する可能性のあるものを教えてください。

必要な関数を既に試しましたが、再帰中にディレクトリを除外するにはどうすればよいですか?

4

1 に答える 1

1

Linux では、Linux の「find」および「grep」コマンドを使用し、qx を使用して Perl でこれらの Linux コマンドを実行し、Linux コマンドの結果を Perl に保存できます。

例えば

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

上記のコマンドの組み合わせは、次のことを行います。

  1. find コマンドは、すべてのディレクトリとファイルを再帰的に一覧表示します。
  2. パイプ「|」検索結果をgrepコマンドに渡します
  3. grep -v コマンドは、無視される「dir1」、「dir2」...「dirn」に存在しない文字列のみを画面に出力します。
  4. 最後に、qx コマンドは Linux コマンドの find および grep を実行し、出力を $result 変数に保存します。

Windows でも同様のことができます。唯一の違いは、Windows コマンド ラインを使用することです。

例えば

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

上記のコマンドは、ディレクトリの名前が「workspace」または「TVM」であることを除いて、すべてのディレクトリを再帰的に一覧表示します。

于 2016-12-21T21:03:13.437 に答える