ディレクトリを一覧表示しますが、サブディレクトリが含まれている場合にのみ適用されますか?

ディレクトリを一覧表示しますが、サブディレクトリが含まれている場合にのみ適用されますか?

Unixでは、1つのコマンドを使用してサブディレクトリを含むディレクトリのみを一覧表示できますか?

たとえば、「division_A」というサブディレクトリが含まれている場合は、ディレクトリ名を一覧表示したいと思います。

/data/data_file/form_100/division_A
/data/data_file/form_101/division_A
/data/data_file/form_102/division_A

予想される結果は次のとおりです。

form_100 
form_101 
form_102

2つのコマンドラインでのみ目標を達成できます。

cd /data/data_files
echo `ls -d */division_A 2> /dev/null | sed 's,/division_A,,g'`

だから誰かがコマンドを使ってこれを行うことができるかどうか尋ねたかったのです。

ベストアンサー1

可能であれば、そのオプションを使用して、他のツールを呼び出さずに結果の親ディレクトリのみを印刷するように出力形式を指定GNU findできます。たとえば、次のようになります。-printfdirname

$ find
.
./data_file
./data_file/form_100
./data_file/form_100/division_A
./data_file/form_101
./data_file/form_101/division_A
./data_file/form_102
./data_file/form_102/division_A

$ find -type d -name 'division_A' -printf "%h\n"
./data_file/form_100
./data_file/form_101
./data_file/form_102

おすすめ記事