Eu lutei com isso durante a maior parte da noite passada.
Eu quero renomear todos os arquivos xxxx-yyyy
para xxxx:yyyy
uma pasta de um makefile.
Eu tenho um renamefiles.sh
que faz o trabalho bem:
#!/bin/sh
for i in $i
do
echo $i
echo mv "${i}" "${f//-/:}";
mv "${i}" "${f//-/:}";
done
Mas eu realmente gostaria de colocar isso dentro de um makefile.
O makefile é do OpenWRT / Lede; o trecho onde ele precisa estar é:
define Build/Prepare
$(Build/Prepare/Default)
tar xvfj $(DL_DIR)/$(PKG_DATA_FILENAME) -C $(PKG_BUILD_DIR)
rm -f \
$(PKG_BUILD_DIR)/$(PKG_DATA_PATH)/usb_modeswitch.d/05c6:1000:sVe=GT
cp ./data/* $(PKG_BUILD_DIR)/$(PKG_DATA_PATH)/usb_modeswitch.d/
./renamefiles.sh $(PKG_BUILD_DIR)/$(PKG_DATA_PATH)/usb_modeswitch.d/
endef
Então, eu realmente gostaria de, no makefile, renomear $(PKG_BUILD_DIR)/$(PKG_DATA_PATH)/usb_modeswitch.d/????-????
para????:????
mas o que eu tentei, eu parecia ter algum erro (geralmente unexpected end of file
de bash
?).
Também estou procurando uma solução que funcione sem pré-requisitos adicionais; Por exemplo, minha primeira pesquisa indicou que rename
faria o trabalho muito bem, mas eu fui advertido porque não está disponível em todos os lugares.
rename
comando (empacotado em várias distros) com regexp no estilo perl em vez de um script caseiro.
for i in $i
uma cópia / colagem real? não deveria serfor i in $*
? 2) chamada makefile deve ser./renamefiles.sh $(PKG_BUILD_DIR)/$(PKG_DATA_PATH)/usb_modeswitch.d/????-????