/usr/local/aaa/bbb/abc
/usr/local/aaa/bbb/aaa/bb
/usr/local/bb/ccc
/usr/local/ccc/ddd/eee/fff
/usr/local/bb/ccc/def
この時、包括するディレクトリパスをもれなく取得したい。
例えばこの場合だと、
/usr/local/aaa
/usr/local/bb/ccc
/usr/local/ccc
になります。(/usr/local のみはNG。出来るだけ下の階層まで)
この処理を実装するスマートな方法を教えてください。力ずくでやったものはNGです。
言語はpythonがベターですが、他でも良いです。よろしくお願いします。
質問が成立していない、もしくは例示が誤っているのでは?
指定されたパスすべてを含むパスなら/usr/local(と/と/usr)しか存在しない。
「出来るだけ下の階層まで」とするなら、
/usr/local/aaa/bbb/abc
/usr/local/aaa/bbb/aaa/bb
/usr/local/ccc/ddd/eee/fff
/usr/local/bb/ccc
が回答になる。(/usr/local/bb/ccc/defのみ/usr/local/bb/cccに含まれて消える)
/usr/local/ccc
が包括URLとなる理由がどうやっても思いつきませんが。
他の人も言ってますが、これは例題ミスでしょうね。
セットで包括という意味で書きました。
すべてのディレクトリを取得して
/usr/localをカット
で、後は文字列処理でやればいい。
その文字列処理の部分を具体的にお願いします。
/usr/local も例なので、その部分の判定も合わせて。
いまいち条件が絞れません。
/usr/local/aaa/bbb/abc /usr/local/aaa/bbb/aaa/bb /usr/local/aaa/bbb/aaa/ccc
の場合、すべてに共通する
/usr/local/aaa/bbb/
だけなのか、
/usr/local/aaa/bbb
/usr/local/aaa/bbb/aaa
のふたつが得られるのでしょうか。
日本語が誤りなのはすみません。
例を示してますのでそちらが正しいと思っていただければ。