我有一个名称为VERSION的数组,该数组是从mydir目录中获取的,并且具有如下参数(文件):
VERSION[0]="TEST01_0.TEST01_1"
VERSION[1]="TEST03_1"
VERSION[2]="TEST02_1.TEST02_2"
VERSION[3]="TEST04_2"
VERSION[4]="TEST02_3"
我试图将TEST01_0.TEST01_1重命名为TEST01_1,并将TEST02_1.TEST02_2重命名为TEST02_2。但是出现以下错误:
mv: cannot stat `TEST01_0.TEST01_1': No such file or directory
mv: cannot stat `TEST02_1.TEST02_2': No such file or directory
你能帮我解决吗?这是我的代码块:
#!/bin/sh
VERSION=(/mydir/TEST*)
for file in "${VERSION[@]}"
do
if [[ `echo ${file} | grep -o '_' | wc -l` == 2 ]]; then
mv "${file}" "${file%.*}";
fi
done
谢谢
造成这种情况的最好办法是从内部运行mydir
有bash
如下,不依赖于任何第三方实用工具,比如cut
或grep
#!/bin/bash
for file in T*
do
# Getting the string only containing '_' and if the count matches, 2
# doing the file rename
dashes="${file//[^\_]/}"
if (( "${#dashes}" == 2 ))
then
mv -v "$file" "${file%.*}"
fi
done
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句