我有大量文件,其文件名格式为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
答案 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
。