rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Commande sed

coconuts11, le vendredi 16 décembre 2005 à 16:32:03
Bonjour,

j'aimerais bêtement insérer du texte dans un fichier avec la commande sed mais je n'y arrive pas... c'est pour mettre dans un script, donc j'aimerais pouvoir faire un truc du genre "sed [argument] 'texte à insérer' fichier_destination"
je suis un newbie en linux soyez indulgent ;-)


merci !
Répondre à coconuts11  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
hssissen, le vendredi 16 décembre 2005 à 16:43:57
Salut,
Insérer à quel niveau du texte, n'importe?
Répondre à hssissen

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
coconuts11, le vendredi 16 décembre 2005 à 16:47:57
oui n'importe où, car je crée un nouveau fichier vide avec la commande touch juste avant, et c'est ce fichier que j'aimerais remplir.

merci
Répondre à coconuts11

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jipicy, le vendredi 16 décembre 2005 à 16:48:36
Salut,
[jp@Mandrake tmpfs]$ cat fichier.txt

Bonjour,

j'aimerais bêtement insérer du texte dans un fichier avec la commande sed mais je n'y arrive pas... c'est pour mettre dans un script, donc j'aimerais pouvoir faire un truc du genre "sed [argument] 'texte à insérer' fichier_destination"
je suis un newbie en linux soyez indulgent ;-)


merci !

[jp@Mandrake tmpfs]$ sed '2i\Ceci est une ligne insérée sur la ligne 2\' fichier.txt

Bonjour,
Ceci est une ligne insérée sur la ligne 2

j'aimerais bêtement insérer du texte dans un fichier avec la commande sed mais je n'y arrive pas... c'est pour mettre dans un script, donc j'aimerais pouvoir faire un truc du genre "sed [argument] 'texte à insérer' fichier_destination"
je suis un newbie en linux soyez indulgent ;-)


merci !

[jp@Mandrake tmpfs]$ sed -i '2i\Ceci est une ligne insérée sur la ligne 2\' fichier.txt
[jp@Mandrake tmpfs]$ cat fichier.txt

Bonjour,
Ceci est une ligne insérée sur la ligne 2

j'aimerais bêtement insérer du texte dans un fichier avec la commande sed mais je n'y arrive pas... c'est pour mettre dans un script, donc j'aimerais pouvoir faire un truc du genre "sed [argument] 'texte à insérer' fichier_destination"
je suis un newbie en linux soyez indulgent ;-)


merci !
[jp@Mandrake tmpfs]$
La commande avec "-i" (sed -i) c'est pour écrire dans le fichier. La 1ère (sans l'option "-i") ne fait les modifications que sur la sortie standard (l'écran). Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé. 
Répondre à jipicy

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
[Dal], le vendredi 16 décembre 2005 à 16:48:51
Si tu veux l'insérer à la fin, tu peux faire sans sed, comme çà :

echo "text à insérer" >> fichier_destination


Dal
Répondre à [Dal]

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
coconuts11, le vendredi 16 décembre 2005 à 16:50:32
merci bcp pour vos réponses !
je vais tester tout ca !
Répondre à coconuts11

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
coconuts11, le vendredi 16 décembre 2005 à 18:06:28
Ca marche au poil, j'arrive a remplir mon fichier comme je veux mais il me reste un soucis quand je fais (par exemple) :

echo "ORACLE_HOME=$ORACLE/bin" >> monFichier

Le pb est que le caractète spécial "$" est pris en compte et donc dans mon fichier nommé monFichier j'ai :

ORACLE_HOME=

alors que je devrais avoir : ORACLE_HOME=$ORACLE/bin

Comment faire pour que les # et les $ soit bien pris en tant que chaine de caractère et pas en tant que caractère spéciaux ?

existe il un caractère d'échappement ?

merci !!
Répondre à coconuts11

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
[Dal], le vendredi 16 décembre 2005 à 18:15:14
Essaye echo "ORACLE_HOME=\$ORACLE/bin" >> monFichier


Dal
Répondre à [Dal]

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jipicy, le vendredi 16 décembre 2005 à 18:14:38
Re-

Suffit de remplacer les guillemets (" ")par des quotes simples (' '):
[jp@Mandrake tmpfs]$ echo "ORACLE_HOME=$ORACLE/bin" >> monFichier
[jp@Mandrake tmpfs]$ cat monFichier
ORACLE_HOME=/bin
[jp@Mandrake tmpfs]$ echo 'ORACLE_HOME=$ORACLE/bin' >> monFichier
[jp@Mandrake tmpfs]$ cat monFichier
ORACLE_HOME=/bin
ORACLE_HOME=$ORACLE/bin
[jp@Mandrake tmpfs]$
;-)) Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé. 
Répondre à jipicy

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
[Dal], le vendredi 16 décembre 2005 à 18:19:08
Arf.. oui, c'est bien mieux (s'il n'y a par ailleurs aucune variable à interpréter dans la chaîne).


Dal
Répondre à [Dal]

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
coconuts11, le vendredi 16 décembre 2005 à 18:18:49
Vous m'épatez !
merci pour l'info, j'en ferais bon usage !
Répondre à coconuts11

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Poulpoul, le jeudi 31 mai 2007 à 12:40:19
Bonjour tout le monde,
question bête :
ayant testé ces commandes sous AIX, cela ne fonctionne pas apparement, cela serait il destiné pour linux seulement concernant le sed -i
ou alors y a aurait une astuce ?

merci merci

++

poulpoul
Répondre à Poulpoul

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jipicy, le jeudi 31 mai 2007 à 13:11:38
Salut,

cela serait il destiné pour linux seulement concernant le sed -i
C'est surtout question de version de sed (GNU sed plus exactement et en version >= 4.0.5).

Le moyen de contourner cette non fonctionnalité, c'est de passer par un fichier temporaire :
sed 's/foo/bar/' < fich > fich.tmp && mv -f fich.tmp fich
;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.
Répondre à jipicy

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Poulpoul, le lundi 18 juin 2007 à 14:36:33
merci pour l'info Jipicy
Répondre à Poulpoul
Discussions pertinentes trouvées dans le forum
10/04 14h45Commande SED , rempalcer à partir de...13
08/04 13h56Commande SED14
02/04 10h59Commande Sed à la place de Awk10
04/03 15h23L'/ dans une commande sed2
27/02 15h00Commande sed23
Plus de discussions sur « commande sed »
Logiciels pertinents trouvés dans les téléchargements
Télécharger free commander 2007.10afree commander - Free Commander est une alternative pour remplacer le gestionnaire de fichier ou explorateur de Windows. Le programme est...Catégorie: Gestion de fichiers
Licence: Freeware/gratuit
Télécharger NcFTP 3.2.2NcFTP - NcFTP est un formidable client FTP en ligne de commande disponible pour la quasi-totalité des systèmes d'exploitation....Catégorie: Téléchargement
Licence: Freeware/gratuit
Télécharger PKZIP 2.50PKZIP - Le compresseur/décompresseur de fichiers ZIP original ... peut être très utile parfois...Catégorie: Compression/Décompression
Licence: Freeware/gratuit
Télécharger 7Zip 4.577Zip - 7-Zip est un utilitaire de compression/décompression libre pour systèmes Windows 32-bit. Il est très simple à utiliser:...Catégorie: Compression/Décompression
Licence: Open Source
Plus de logiciels gratuits sur « commande sed »