【发布时间】:2014-05-01 12:57:11
【问题描述】:
我正在寻找以下结构的脚本:
之前:
/Description/TestCVin/OpenCVin/NameCv/.....
/Description/blacVin/baka/NameCv_hubala/......
/Description/CVintere/oldCvimg/NameCv_add/.....
之后:
/Description/TestaplCVin/OpenaplCVin/NameaplCv/.....
/Description/blaapcVlin/baka/NameaplCv_hubala/......
/Description/aplCVintere/oldaplCvimg/NameaplCv_add/.....
我想通过正则表达式重命名所有文件夹中的“Cv or CV or cV”>>“aplCv or aplCV or aplcV”...
我的脚本看起来像:
#!/bin/sh
printf "Input your Directory path: -> "
read DIR
cd "$DIR"
FILECASE=$(find . -iname "*cv*")
LAST_DIR_NAME=""
for fdir in $FILECASE
do
if [[ -d $fdir ]];
then
LAST_DIR_NAME=$fdir
fi
FILE=$(echo $fdir | sed -e "s/\([Cc][Vv]\)/arpl\1/g")
echo "la file $FILE"
if ([[ -f $fdir ]] && [[ "$fdir" =~ "$LAST_DIR_NAME" ]]);
then
FILECASE=$(find . -iname "*cv*")
tmp=$(echo $LAST_DIR_NAME | sed -e "s/\([Cc][Vv]\)/arpl\1/g")
fdir=$(echo $fdir | sed -e 's|'$LAST_DIR_NAME'|'$tmp'|g')
fi
mv -- "$fdir" "$FILE"
done
但它会抛出一个错误..:(
如何编写它以根据文件夹名称重命名文件?
【问题讨论】:
-
.. by
regulator exception... 那是什么? -
...调节器表达式:D..我写错了拼写
-
抛出了什么错误?
-
你能帮帮我吗?开发空。我搜索了 4 天,但没有得到我想要的结果。
-
error : mv: rename ./Description/Testaplaplaplin to : No such file or directory ....
标签: regex linux shell sh rename