使用shell脚本,如何以000等格式输入数字?

时间:2014-07-02 14:33:43

标签: macos bash shell

我有大量文件,其文件名格式为XXX_name_YYY.out,YYY和YYY为数字。我想使用循环将所有以XXX_name开头的文件移动到名为' XXX_name'的文件夹中。我是shell脚本的新手,只在C中编写代码。

我会做这样的事情,但数字的格式与文件名中的数字不匹配。

c=1
while[c -le 100]
do
    d=1
    mkdir "$c"_name
    while[d - le 100]
    do
        mv "$c"_name_"$d".out "$c"_name/"$c"_name_"$d".out
        (( d++ ))
    done

    (( c++ ))
done

1 个答案:

答案 0 :(得分:0)

for FILE in [0-9][0-9][0-9]_name_[0-9][0-9][0-9].out; do
    DIR=${FILE%_*.out}
    [[ -d $DIR ]] || mkdir "$DIR" && echo mv "$FILE" $DIR/"
done

当您确定它已经有效时,请删除echo