У меня есть файлы типа .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-файлов –