人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

プログラムのアルゴリズムについてです。以下のようなパスが数十個あるとします。
/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がベターですが、他でも良いです。よろしくお願いします。

●質問者: sohei
●カテゴリ:コンピュータ
✍キーワード:aaa ABC BB CCC DDD
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● fenstrial
●30ポイント

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


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

◎質問者からの返答

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

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


2 ● 勇者よっしー
●0ポイント

/usr/local/ccc

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

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

◎質問者からの返答

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


3 ● tama213
●30ポイント

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

/usr/localをカット

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

◎質問者からの返答

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

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


4 ● HowAreYou
●30ポイント

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

/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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ