我有一些类型为.csv的文件,但它们的命名方式不同。理想情况下,我希望脚本能够使用.csv类型查找所有文件,并使用其路径名称重命名文件。重命名路径名为
当文件被重命名,他们应该是这样的:
/home/doc/funds2015/folder xxx/folder 123/Folder xxx/something1.csv
/home/doc/funds2015/folder xxx/folder 123/Folder xxx/something2.csv
xxx_123_01_01.csv
xxx_123_02_01.csv
有人可以帮助我这个重组代码一个清洁循环来做到这一点。我对bash相当陌生。
oldpath= "/home/doc/funds2015"
for file in $(find $oldpath -type f -name something1.csv); do
shortname=${file#$oldpath/}
newname="${shortname "some reg ex"}"
if [ -f $newname ]; then
echo "$newname already exists."
else
echo "copy: $file"
echo " --> $newname"
cp $file $newname
fi
done
for file in $(find $oldpath -type f -name something2.csv); do
shortname=${file#$oldpath/}
newname="$oldpath "some reg ex"}"
if [ -f $newname ]; then
echo "$newname already exists."
else
echo "copy: $file"
echo " --> $newname"
cp $file $newname
fi
done
您的文件路径中有两个“xxx”位,并且您的示例输出中有一个“xxx”位。你想要哪个“xxx”? – spinkus
我只想要第一个'xxx'并将'_01'附加到所有.csv文件的末尾 –