2016-05-27 6 views
-2

私は効率的なディレクトリ名を見つける方法を見つけようとしています。たとえば、次のパス/ x1/x2/x3に「x2」というディレクトリ名を付けて、パス/ x1と名前x3を付けたいとします。Perl:中間ディレクトリ名を検索する

注:完全なパス/ x1/x2/x3はわかりません。私は/ x1と名前x3しか知りません。別の言葉では、/ x1パスの下にあるサブディレクトリx3の親ディレクトリを検索しようとしています。

お願いします。 ありがとうございました!

+1

を。これは、正規表現または 'スプリットのいずれかで行うことができ、非常に基本的な操作です( "/"、$ file) 'を実行します。しかし、すべてのファイル名は '/ x1/x2/x3'の形式ですか? '/ x1/x2/x3/x4' [またはそれ以上]のものはありますか?そして、あなたはその場合何をしたいですか? '/ x1'と' x3' [と 'x2'を捨てる]は'/x1/x2'と 'x3'と同じくらい有用ではないようです。私はそのユースケースを想像しています。 –

+1

これは小さな問題です。あなたはPerlをまったく知っていますか?あなたは何の研究をしましたか、なぜ結果はあなたを満足させませんでしたか? – Borodin

答えて

4

私はsplitdirクラスメソッドがボロディンの溶液であなたが

2

移動を手助けする必要がありますが、コアFile::Specモジュール

を見てすることをお勧めします。しかし、あなたはモジュールを使用したくない場合には、/でパスを分割:

my $dir = "/x1/x2/x3"; 
my $paths = (split "/", $dir)[2]; 
print $paths, "\n"; 

出力:

x2 
+0

返事をありがとう。しかし、私がやろうとしていることではありません。実際には、私はパス/ x1/x2/x3を知らない。私が知っているのは、パス/ x1と名前x3です。別の言葉では、/ x1パスの下のx3サブディレクトリを含む親ディレクトリを検索しようとしています – user6388641

関連する問題