Rechercher : dans
Par :

Commande sed

Dernière réponse le 4 fév 2009 à 21:46:48 coconuts11, le 16 déc 2005 à 16:32:03 
 Signaler ce message aux modérateurs

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 !

Meilleures réponses pour « commande sed » dans :
Sed - Supprimer une ou plusieurs lignes d'un fichier VoirSupprimer une (ou plusieurs) ligne(s) d'un fichier Syntaxe sed '{[/]||[/]}d' sed '{[/][,][/]d' /.../ = délimiteurs n = le numéro de ligne chaîne = la chaîne contenue dans la...
Sed - Substitution VoirSubstitution Substitution basique Simple Globale Ciblée Substitution conditionnée Simplee Avancée Bloc Avancéé Substitution basique Simple - 1ère occurrence (de chaque ligne) rencontrée uniquement sed 's/la/LA/'...
Sed - Introduction à SED - Part III VoirSED - The Stream EDitor - Part III Ce document est une introduction à la pratique et à l'utilisation de l'éditeur de flux "SED", qui essaie de couvrir certaines fonctionnalités assez méconnues, pour ne pas dire "quasi inconnues", qui font de "SED"...
Commandes Linux VoirTableau des principales commandes Linux Commande Description équivalent DOS ls liste le contenu d'un répertoire dir cd change de répertoire cd cd .. répertoire parent cd.. mkdir crée un nouveau...
Commandes UNIX VoirTableau des principales commandes UNIX Commande Unix Description Options ls liste le contenu d'un répertoire -a Affiche tous les fichiers, y compris les fichiers cachés ...
Attaques par injection de commandes SQL VoirInjection de commandes SQL Les attaques par injection de commandes SQL sont des attaques visant les sites web s'appuyant sur des bases de données relationnelles. Dans ce type de sites, des paramètres sont passés à la base de données sous forme...

1

hssissen, le 16 déc 2005 à 16:43:57
  • +1

Salut,
Insérer à quel niveau du texte, n'importe?

Répondre à hssissen

2

coconuts11, le 16 déc 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

jipicy, le 16 déc 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

16

eliza_b, le 3 fév 2009 à 23:55:39

Bonsoir jipicy,

J'ai un petit souci. Voila mon problème,
Je veux modifier, dans un fichier, une ligne avec la commande sed.
Et là je sais pas comment utiliser la commande sed pour le faire.
J'ai besoin de ton aide s'il te plait,
Merci d'avance.

PS: Urgent!!!

Répondre à eliza_b

17

jipicy, le 4 fév 2009 à 06:32:12

Salut,

Déjà voir dans la FAQ consacrée à SED et puis surtout poser ta question sans quoi...
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

19

 eliza_b, le 4 fév 2009 à 21:46:48

Ok jipicy
Merci pour votre réponse et excusez moi pour hier.

Bon là, j'ai un petit souci,

Voila, je fais un script qui dois me comparer l'umask du système à un autre umask que je lui donne. Et si c'est différent, je veux le remettre à sa valeur initiale. Voici, ce que j'ai fait.

#!/bin/bash

umask=`umask`
umask1=0222

if $umask != $umask1; then

umask 0022

fi


Mon souci, c'est que, après l'exécution du script, quand je tape umask sur la console, je vois que le script n'a pas changé le umask. Et ce qui est bizar c'est que quand j'attoute la ligne suivante sur le script, dans le if, echo "la valeur de l'umask est `umask`", il m'affiche la nouvelle valeur, mais dans le système (la console) c'est pas le cas.

Est ce que vous avez des idées de la cause???

S'il vous plait, j'ai besoin de votre aide.

Répondre à eliza_b

18

lami20j, le 4 fév 2009 à 07:41:06

Salut,

et puis surtout poser ta question sans quoi...
Je dirais même de créer un nouveau message ;-))

PS: Urgent!!!
Petit conseil ;-)


Même si c'est le cas pour toi, il faut eviter d'ajouter ce genre d'information.
Pourquoi?
Que tu précises ou pas si c'est urgent, tu n'auras pas une réponse plus rapide ;-)
Sur ce site il y a que des bénévoles, donc si quelqu'un aura la réponse, alors il te la donneras le plus vite possible, je t'assure.

En revanche une telle précision peut determiner le bénévole de ne pas te répondre ;-) si rapidement ou pas du tout.
106485010510997108

Répondre à lami20j

4

[Dal], le 16 déc 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

coconuts11, le 16 déc 2005 à 16:50:32

Merci bcp pour vos réponses !
je vais tester tout ca !

Répondre à coconuts11

6

coconuts11, le 16 déc 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

[Dal], le 16 déc 2005 à 18:15:14

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


Dal

Répondre à [Dal]

7

jipicy, le 16 déc 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

[Dal], le 16 déc 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

coconuts11, le 16 déc 2005 à 18:18:49

Vous m'épatez !
merci pour l'info, j'en ferais bon usage !

Répondre à coconuts11

11

Poulpoul, le 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

jipicy, le 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

Poulpoul, le 18 jun 2007 à 14:36:33

Merci pour l'info Jipicy

Répondre à Poulpoul

14

Caroline, le 30 oct 2008 à 14:06:06

Salut,

J'ai trouvé un cours sur cette commande ici : http://www.misfu.com/information-sur-le-fichier-320.html

Répondre à Caroline

15

jipicy, le 30 oct 2008 à 14:07:25

Merci ;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy
Collection CommentÇaMarche.net