【发布时间】:2017-04-10 19:48:16
【问题描述】:
我有一些 .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”?
-
我只想要第一个 'xxx' 并将 '_01' 附加到所有 .csv 文件的末尾