Je travaille dans Oracle ODI 11g. J'ai le serveur de source de Linux. Je dois renommer tous les fichiers dans un dossier en supprimant le préfixe (e_). J'ai utilisé la commande:Oracle ODI || OSCommand || Renommer des fichiers
cd /weblogic/
for f in $(ls e*); do echo mv "${f}" "${f##e_}"; done
via putty et cela fonctionnait bien. Cette commande ne fonctionne pas dans OSCommand API of ODI. Je reçois l'exception suivante:
java.io.IOException: Cannot run program "for": error=2, No such file or directory
L'ajout de guillemets autour de la commande ne résout pas le problème. J'ai également essayé de copier cette commande dans le fichier test.sh mais elle ne s'exécute pas à partir de OSC OSCommand. (qui s'exécute à partir de putty aussi bien). L'autorisation de fichier a été mis à 777. Je me exception suivante
java.io.IOException: Cannot run program "./weblogic/test.sh": error=2, No such file or directory
Je peux renommer seul fichier dans le répertoire de l'ODI, mais il ne fonctionne pas avec « pour ». Quelqu'un peut-il m'aider à exécuter cette commande de ODI? ou y at-il une solution de contournement pour ce problème?
Essayez donnant le chemin complet et en spécifiant la commande shell lui-même comme « sh /opt/weblogic/shellscript.sh » –
il me donne exception « : erreur de syntaxe à la ligne 1:' $ » inattendu » – Faryal
cernées I était en train de spécifier la commande shell bash et ODI supporte posix shell (sh). J'ai utilisé pour 'f in e_ *; fais mv "$ f" "\ echo $ f | sed -e 's/^ e _ // \'' "; done' – Faryal