web-dev-qa-db-ja.com

大文字のみで構成されるすべてのサブフォルダー名を取得するにはどうすればよいですか?

名前がA〜Zで構成され、小文字、アンダースコア、ドットなどがない親フォルダー内のフォルダーを取得するにはどうすればよいですか?

1
Lee

'親フォルダー'の使用は少し混乱します。これにより、ツリー全体をトラバースすることなく、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

ただし、これは、ツリー全体をトラバースしない場合にのみ機能します。

2
EightBitTony

次のコマンドを試してください。

ls -1 | grep -w "[A-Z]*"
0
alwayslearning