プログラムのアルゴリズムについてです。以下のようなパスが数十個あるとします。

/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がベターですが、他でも良いです。よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2010/10/13 20:45:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:fenstrial No.1

回答回数57ベストアンサー獲得回数14

ポイント30pt

質問が成立していない、もしくは例示が誤っているのでは?


指定されたパスすべてを含むパスなら/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に含まれて消える)

id:sohei

日本語が誤りなのはすみません。

例を示してますのでそちらが正しいと思っていただければ。

2010/10/06 23:15:38
id:yossiy7 No.2

回答回数778ベストアンサー獲得回数96

/usr/local/ccc

が包括URLとなる理由がどうやっても思いつきませんが。

他の人も言ってますが、これは例題ミスでしょうね。

id:sohei

セットで包括という意味で書きました。

2010/10/06 23:17:04
id:tama213 No.3

回答回数486ベストアンサー獲得回数30

ポイント30pt

すべてのディレクトリを取得して

/usr/localをカット

で、後は文字列処理でやればいい。

id:sohei

その文字列処理の部分を具体的にお願いします。

/usr/local も例なので、その部分の判定も合わせて。

2010/10/06 23:13:07
id:HowAreYou No.4

回答回数91ベストアンサー獲得回数17

ポイント30pt

いまいち条件が絞れません。

/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

のふたつが得られるのでしょうか。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません