
小文字、アンダースコア、ドットなどを持たずに名前がAZで構成される親フォルダのフォルダをどのように取得できますか?
答え1
「親フォルダ」を使うのはやや混乱しています。これにより、AZのみで構成されたツリー全体をナビゲートすることなく、指定されたパスにあるすべてのフォルダ(実際にはディレクトリ)を見つけることができます。
find /given/path -type d -maxdepth 1 -regextype sed -regex ".*/[A-Z]*"
たとえば、現在のディレクトリを実行するには
find . -maxdepth 1 -type d -regextype sed -regex ".*/[A-Z]*"
現在のディレクトリの親ディレクトリを実行するには、
find .. -maxdepth 1 -type d -regextype sed -regex ".*/[A-Z]*"
現在のディレクトリとその下のすべてのディレクトリを実行するには
find . -type d -regextype sed -regex ".*/[A-Z]*"
サンプル出力、
tony@trinity:~$ find . -maxdepth 1 -type d -regextype sed -regex ".*/[A-Z]*"
./AA
./TEST
./
これで、出力から削除する必要がある場合は、cut
後で削除できます。
tony@trinity:~$ find . -maxdepth 1 -type d -regextype sed -regex ".*/[A-Z]*" | cut -c 3-
AA
TEST
ただし、これはツリー全体を巡回しない場合にのみ機能します。
答え2
次のコマンドを試してください。
ls -1 | grep -w "[A-Z]*"