再帰的にディレクトリを検索しますが、一致するサブディレクトリは印刷しません。

再帰的にディレクトリを検索しますが、一致するサブディレクトリは印刷しません。

次のディレクトリ構造を考えてみましょう。

dir1
  [domain.com] foo dir1
    subdir1
  subdir2
    FooFile
dir2
  [domain.com] foo dir2
  subdir3
    [domain.com] foo dir3
      subdir4
      subdir5
    subdir6
  subdir7
[domain.com] foo dir4
  subdir8

[domain.com].Desired出力を含む名前をリストしたいと思います。

[domain.com] foo dir1
[domain.com] foo dir2
[domain.com] foo dir3
[domain.com] foo dir4

これを整理するのに苦労しています。私が得た最も近いもの:

find . -type d -regextype posix-egrep -regex ".*/(\[domain\.com\]).+" -exec basename {} \;

ただし、これはサブディレクトリも出力します。

[domain.com] foo dir3
subdir5
subdir4
[domain.com] foo dir2
[domain.com] foo dir4
subdir8
[domain.com] foo dir1
subdir1

ベストアンサー1

GNUを見つけたようですので、これで十分でしょう:

find . -type d -name '\[domain.com\]*' -printf '%f\n'

GNUジョブfindは、-printf一致するファイルのデフォルト名のみを印刷できます%f

正規表現の問題は、それ以降のすべてを許可するため、サブディレクトリと一致すること[domain.com]です/".*/(\[domain\.com\])[^/]+"この問題を解決することもできます。

おすすめ記事