Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/03/2011, à 17:04

ratata77

Sed variables et slashs

bonjour,

quelqu'un peut'il m'éclairer concernant sed.
Comment peux on changer la ligne:

A:20100303-112352:test.csv:TEST_FLUX.csv:P0::/tmp::::1
par
A:20110308-161752:test.csv:TEST_FLUX.csv:P0::/tmp::::6
dans un fichier sachant que la premiere ligne se trouve dans la variable $BEFORE et la ligne a remplacer dans le fichier cible se trouve dans la variable $AFTER sed n'a pas l'air d'apprécier les "/" et les variables...

qq chose comme sed -n '/'${BEFORE}'/'${AFTER}'/' ./fichier_cible.txt

j'obtiens  le message d'erreur :

Label too long:

Merci de votre aide

Hors ligne

#2 Le 08/03/2011, à 18:51

wido

Re : Sed variables et slashs

Bonjour,
par exemple

sed -e "s/ /_/g"

peut être remplacé par

sed -e "s! !_!g"

Hors ligne

#3 Le 08/03/2011, à 18:58

Levi59

Re : Sed variables et slashs

ou aussi mettre les variables entre guillements doubles en plus des simples:
sed -n '/'"${BEFORE}"'/'"${AFTER}"'/' ./fichier_cible.txt

(' " variable " ')

Hors ligne

#4 Le 08/03/2011, à 21:05

ratata77

Re : Sed variables et slashs

Merci LEVI59,

Mais j'obtiens le message suivant avec cette solution:

sed -n '/'"${BEFORE}"'/'"${AFTER}"'/' ./fichier_cible.txt
sed: impossible de trouver l'etiquette pour sauter à 'mp::::1/A:20110308-161752:test.csv:TEST_FLUX.csv:P0::/tmp::::6
'
sed semble couper ma chaine au niveau du t de "tmp" / "mp" de la premiere variable

.....une autre idée ?

Hors ligne

#5 Le 08/03/2011, à 21:09

Levi59

Re : Sed variables et slashs

Tiens? Je pensais que cela serais suffisant... Mea Culpa

Sinon la proposition de wido peut également résoudre ton problème:
sed -n '!'"${BEFORE}"'!'"${AFTER}"'!' ./fichier_cible.txt

Tu peux choisir n'importe quel séparateur pour sed tant que tu conserve la même au sein d'une même commande.

Hors ligne

#6 Le 08/03/2011, à 21:24

ratata77

Re : Sed variables et slashs

cette fois ci j'obtiens le message:

sed: -e expression n1, caractere 2: commande inconnue: 'A'

sad

Hors ligne

#7 Le 09/03/2011, à 15:47

AnsuzPeorth

Re : Sed variables et slashs

Bjr,

sed "s@${BEFORE}@${AFTER}@" fichier

Comme il a été dit, le délimiteur peut être changer, il est pris en compte automatiquement si il se trouve après le s.
Si pas de s, il faut l'échapper.

sed '\@item@,@item2@.....'

Comme dans tes variables il y a un /, il faut changer de délimiteur obligatoirement. Et des guillemets suffisent pour utiliser des variables dans sed.

Dernière modification par AnsuzPeorth (Le 09/03/2011, à 15:49)


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#8 Le 10/03/2011, à 17:53

ratata77

Re : Sed variables et slashs

Merci à tous, mon souci est maintenant réglé grace à vous. smile

Hors ligne