Eu lutei com isso durante a maior parte da noite passada.
Eu quero renomear todos os arquivos xxxx-yyyypara xxxx:yyyyuma pasta de um makefile.
Eu tenho um renamefiles.shque 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 filede bash?).
Também estou procurando uma solução que funcione sem pré-requisitos adicionais; Por exemplo, minha primeira pesquisa indicou que renamefaria o trabalho muito bem, mas eu fui advertido porque não está disponível em todos os lugares.
renamecomando (empacotado em várias distros) com regexp no estilo perl em vez de um script caseiro.
for i in $iuma 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/????-????