La commande sed, problème !

La commande sed, problème ! - Shell/Batch - Programmation

Marsh Posté le 06-12-2005 à 10:18:31    

Bonjour,
je dois supprimer les cracatère spéciaux d'une ligne, avec la commande sed, mais je n'arrive pas à m'en servir, comment faire exactement ?
 
Exemple:
pass=gugulog=popo
 
Pour que sa donne juste:
gugu
popo
 
C'est sed -e ?

Reply

Marsh Posté le 06-12-2005 à 10:18:31   

Reply

Marsh Posté le 06-12-2005 à 10:59:04    

Code :
  1. sed -e "s/\=/\n/g"

Reply

Marsh Posté le 06-12-2005 à 11:03:53    

anapajari a écrit :

Code :
  1. sed -e "s/\=/\n/g"



[:aloy]sed -e "/pass=//" -e "/log=/\\n/"


Message édité par Sve@r le 06-12-2005 à 11:04:11
Reply

Marsh Posté le 06-12-2005 à 11:30:36    

Parce qu'enfait je dois envoyer les infos d'un QUERY_STRING dans un fichier, puis retirer les infos qui ne vont pas.
 
log=heeeee&pass=ohhhhhh&liste=Prof&send=Envoyer
 
J'arrive bien à envoyer la ligne ci dessus dans le fichier, mais je n'arrive pas à extraire les infos importantes, qui me donnerais:
heeeee  ohhhhhh  Prof
 
voici mon code
echo $QUERY_STRING >> txt/page sed -e 's/log=/ /g' txt/page
?

Reply

Marsh Posté le 06-12-2005 à 11:41:53    

sed -e 's/log=/ /g' -e 's/&pass=/ /g' -e 's/&liste=/ /'g page -e 's/&send=Envoyer/ /g' page
 
OK avec ca, sa fonctionne mais la commande se répète deux fois... :heink:
 
 jj nimp Eleve
 jj nimp Eleve
 heeeee ohhhhhh Prof
 heeeee ohhhhhh Prof
 heeeee ohhhhhh Prof
 jj nimp Eleve                     <- à partir de là...
 jj nimp Eleve
 heeeee ohhhhhh Prof
 heeeee ohhhhhh Prof
 heeeee ohhhhhh Prof

Reply

Marsh Posté le 06-12-2005 à 11:55:01    

tiens même si il y a certainement plus simple moi j'aurais fait comme ça:

Code :
  1. sed -e 's/^/\&/'  -e 's/\&[^=]*=\([^\&]\)/ \1/g'


Doit y avoir moyen de mettre le premier sed dans le deuxieme mais il comprends mal:

Code :
  1. sed -e 's/[^|\&][^=]*=\([^\&]\)/ \1/g'


Message édité par anapajari le 06-12-2005 à 11:55:29
Reply

Marsh Posté le 06-12-2005 à 12:04:40    

tease_party a écrit :

Parce qu'enfait je dois envoyer les infos d'un QUERY_STRING dans un fichier, puis retirer les infos qui ne vont pas.
 
log=heeeee&pass=ohhhhhh&liste=Prof&send=Envoyer
 


 
Ah oui, tu récupères les champs d'un formulaire HTML. Tu aurais pu le dire tout de suite, ça aurait simplifié (traitement connu).
En plus, en voyant ton premier post, j'ai pensé "tient, ça ressemble à un formulaire mais il manque les &"...
 
T'as qu'à utiliser "set" avec séparateur "&"
 

#!/bin/sh
 
# On sauvegarde l'IFS
old="$IFS"
 
# On change l'IFS
IFS="&"
 
# On déconcatène QUERY_STRING selon l'IFS
set $QUERY_STRING
 
# On remet l'IFS comme avant et on supprime "old" devenu inutile
IFS="$old"; unset old
 
# C'est fini - On récupère ce qu'on veut
log=$1
pass=$2
liste=$3
send=$4
 
# Si on ne veut récupérer que ce qu'il y a après le "="
log=`echo $1 |cut -f2 -d=`
pass=`echo $2 |cut -f2 -d=`
liste=`echo $3 |cut -f2 -d=`
send=`echo $4 |cut -f2 -d=`


Message édité par Sve@r le 07-12-2005 à 10:50:19

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed