500から899の範囲の値で始まるすべてのフォルダを見つける方法は?ファイルにリストするだけです。
追加情報:
- 最大深さ2
- フォルダ名の例:
593091_azerty_qwerty
または849934_blablablabla_bla_blabla
答え1
以下を試してください( find
その-maxdepth
オプションをサポートしている場合)。
find parent_dir -maxdepth 2 -type d \(
-name '[5-8][0-9][0-9][!0-9]*' -o -name '[5-8][0-9][0-9]' \) > my_file1.txt
答え2
の場合、zsh
数値が常に10進整数であると仮定します(プロセッサがデフォルトでサポートする範囲内)。
setopt extended_glob
dirs=(<500-899>([^0-9]*|)(/N) */<500-899>([^0-9]*|)(/DN))
ただし、2番目のモードでは、ディレクトリへのシンボリックリンクが現在のディレクトリに存在する場合、そのディレクトリはターゲットから取得されますzsh
。<500-899>...
中かっこ拡張により引数分解が短縮されます。
dirs=({,*/}<500-899>([^0-9]*|)(/DN))
数字の後に常に来ると、_
次のように単純化できます。
dirs=({,*/}<500-899>_*(ND))
5.2 より前のバージョンでは、プロセッサが整数を表すように、500 から 899 のモジュールで 2 64の数字とzsh
一致するため、たとえば 2 69 + 512 と一致します。590295810358705652224_something