URL: https://linuxfr.org/forums/programmation-shell/posts/traitement-par-lot-et-sed Title: Traitement par lot et sed Authors: Philippe M Date: 2012年03月18日T18:37:45+01:00 Tags: Score: -1 Bonjour, je dois automatiser la génération de fichier sql par rapport à un formulaire remplie par une personne pour ensuite l'importer dans une base. L'idée est d'avoir un fichier template qui ressemble à ça : USE thecom_--COMMUNAUTE--; UPDATE gt_agora_info SET adresse_web="http://xxxxxxx/--COMMUNAUTE--/index.php", timezone="1.00", langue="francais"; INSERT INTO gt_espace SET id_espace="1", nom="--COMMUNAUTE--", description=""; INSERT INTO gt_utilisateur SET nom="--NOM--", prenom="--PRENOM--", identifiant="--USERNAME--", pass="--USERPASSE--", mail="--EMAIL--", date_creation="--DATE--", espace_connexion="1"; INSERT INTO gt_agenda SET id_utilisateur="1", type="utilisateur"; INSERT INTO gt_jointure_messenger_utilisateur SET id_utilisateur_messenger="1", tous_utilisateurs="1"; INSERT INTO gt_jointure_espace_utilisateur SET id_espace="1", id_utilisateur="1", droit="1"; Ensuite j'ai mon petit script qui me parcours le fichier et remplace le valeur entre --XXX-- par celle récupéré par le formulaire et comme je suis flémar je suis passé par une fonction : function replaceValue() { sed -i 's/--'1ドル'--/'2ドル'/g' 3ドル } J'appelle ma fonction comme ça : replaceValue "DATE" "$DATE" $SPOOLDIR/after-import-$COMMUNAUTE.sql Sauf que je bloque pour la valeur de --DATE-- j'envoie cette valeur : DATE=`date "+%Y-%m-%d %H:%M:%S" Et sed me répond : sed: -e expression n°1, caractère 21: commande `s' inachevée J'ai bien compris que c'était l'espace qui posait problème mais sans trouver de solution. Est-ce que vous avez une idée ?

AltStyle によって変換されたページ (->オリジナル) /