如何编写多个条件并选择文件夹名称的最小值?

问题描述 投票:0回答:2

我有两个文件夹

  • 带有三个子文件夹的113482797

    • 63265746

    • 36424846

    • 57382349

  • 带有三个子文件夹的[116377462

    • 75847872

    • 37389421

    • 10348837

我想用最小的文件夹名称更改目录。

我的代码是

for d in [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9];
        do ( cd "$d" &&
        for x in [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9];       
                do (cd "$x" && ls -l);
        done );
done    
bash shell comma
2个回答
0
投票

这可以解决问题:

cd $(find ./113482797/ -mindepth 1 -type d |sort -n |head -1)

所以您将cd放入./113482797/36424846目录。


0
投票

使用awk的简单示例:

cd 113482797 && cd "$(ls | awk 'BEGIN{prev=$0+0}{if(prev<($0+0)){prev=($0+0)}}END{print prev}')"

由于此脚本包含cd,因此应使用source script.sh来调用它,否则(例如sh script.sh)cd命令将无法工作,因为它创建了执行该脚本的子外壳。

© www.soinside.com 2019 - 2024. All rights reserved.