edit files in place (makes backup if extension supplied)
L'option -i te permet donc de modifier le contenu du fichier passé en argument. Tu as le choix de modifier l'original sans sauvegarder le fichier original (pas de suffixe) ou bien de sauvegarder le fichier original sous un nouveau nom (nom du fichier original + suffixe).
Reprenons la commande que tu as utilisé :
sed -ie "s/[hs]d[a-z]/${INSTALL_DISK}/g" ${TARGET}/etc/lilo.conf > ${TARGET}/etc/lilo.conf
Tu passes à l'option -i une valeur : « e ». La commande sed doit donc modifier le fichier original, mais en conserver une copie dans ${TARGET}/etc/lilo.confe (avec le suffix « e » !). L'option -e n'est pas spécifiée (le « e » est compris comme étant la valeur de l'option -i). Ensuite, ton problème de fichier vide est le même que précédemment : tu lis et tu écris dans le même fichier en même temps.
La bonne commande si tu ne veux pas de sauvegarde est la suivante :
sed -i -e "s/[hs]d[a-z]/${INSTALL_DISK}/g" ${TARGET}/etc/lilo.conf
La même, mais avec sauvegarde (on n'est jamais trop prudent) :
sed -i ".bak" -e "s/[hs]d[a-z]/${INSTALL_DISK}/g" ${TARGET}/etc/lilo.conf
[^] # Re: Ouai mais en fait non ....
Posté par Didier . En réponse au message Sed ... je vais craquer. Évalué à 6.
C'est tout à fait logique ;) Je m'explique :
L'option -i signifie selon le man :
L'option -i te permet donc de modifier le contenu du fichier passé en argument. Tu as le choix de modifier l'original sans sauvegarder le fichier original (pas de suffixe) ou bien de sauvegarder le fichier original sous un nouveau nom (nom du fichier original + suffixe).
Reprenons la commande que tu as utilisé :
Tu passes à l'option -i une valeur : « e ». La commande sed doit donc modifier le fichier original, mais en conserver une copie dans ${TARGET}/etc/lilo.confe (avec le suffix « e » !). L'option -e n'est pas spécifiée (le « e » est compris comme étant la valeur de l'option -i). Ensuite, ton problème de fichier vide est le même que précédemment : tu lis et tu écris dans le même fichier en même temps.
La bonne commande si tu ne veux pas de sauvegarde est la suivante :
La même, mais avec sauvegarde (on n'est jamais trop prudent) :
Voilà ;)