名前がA〜Zで構成され、小文字、アンダースコア、ドットなどがない親フォルダー内のフォルダーを取得するにはどうすればよいですか?
'親フォルダー'の使用は少し混乱します。これにより、ツリー全体をトラバースすることなく、A〜Zのみで構成される、指定されたパス内のすべてのフォルダー(実際にはディレクトリ)が検索されます。
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
ただし、これは、ツリー全体をトラバースしない場合にのみ機能します。
次のコマンドを試してください。
ls -1 | grep -w "[A-Z]*"