Я боровся з цим найбільше минулої ночі.
Я хочу , щоб перейменувати всі файли xxxx-yyyy
в xxxx:yyyy
в папці з Makefile.
У мене є робота, renamefiles.sh
яка робить цю роботу чудово:
#!/bin/sh
for i in $i
do
echo $i
echo mv "${i}" "${f//-/:}";
mv "${i}" "${f//-/:}";
done
Але я дуже хотів би помістити це все в makefile.
Makefile - з OpenWRT / Lede; фрагмент, де це має бути:
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
Тому я дуже хотів би, щоб у файлі makename було перейменовано $(PKG_BUILD_DIR)/$(PKG_DATA_PATH)/usb_modeswitch.d/????-????
на????:????
але що б я не намагався, я, здавалося, помилився (як правило, unexpected end of file
з bash
?).
Я також шукаю рішення, яке буде працювати без додаткових передумов; наприклад, моє перше дослідження показало, що rename
це зробить роботу непогано, але мене попередили, тому що воно доступне не скрізь.
rename
команди (упакованої на багато дистрибутивів) з пергекс-стилем у стилі perl замість домашнього сценарію.
for i in $i
справжня копія / вставка? чи не повинно бутиfor i in $*
? 2) makefile call повинно бути./renamefiles.sh $(PKG_BUILD_DIR)/$(PKG_DATA_PATH)/usb_modeswitch.d/????-????