Re: remplacer de caractères dans une chaine

Page principale

Répondre à ce message
Auteur: anne aublanc
Date:  
À: guilde
Nouveaux-sujets: Re: remplacer de caractères dans une chai ne, Re: remplacer de caractères dans une chai ne
Sujet: Re: remplacer de caractères dans une chaine

----- Original Message -----
From: "anne aublanc" <anne.aublanc@???>
To: <guilde@???>
Sent: Saturday, November 27, 2004 9:35 AM
Subject: remplacer de caractères dans une chaine


| bonjour,

|
| J'ai besoin de remplcer les / en \/

|
| pour cela :
| s/\//\\\//

|
| mais cela ne fonctionne pas : erreur!

|
| La chaine que je dois modifier par exemple :
| "/home/JOB.done /home/JOB.suspended"
| =>
| "\/home\/JOB.done \/home\/JOB.suspended

|
Merci à tous...

Cela ne résout pas complètement mon problème

J'ai un fichier avec la liste des enregistrements qui ont sont ajoutés au
fur à mesure des demandes.
Je traite ce fichier par cron toutes les x minutes...
le traitement cron :
lire chaque ligne du fichier (ok)
traiter la demande (ok)
et supprimer la ligne qui vient d'être traitée (non ok)

Je n'arrive pas à supprimer cette ligne!

le script :

#!/bin/sh

home=/home/e-smith/files/ibays/fax-voice1/html/fax
config=$home/filesuspendu

# lire le fichier
cat $config | while read line   # ok
do
        command=`echo $line `   # ok
        echo -$command-           # ok
        mv $command                 #ok
        command1=`echo $command | sed 's/\//\\\\\//g'`
#       command1=`echo $command | sed 's_/_\\/_g'`
        echo -$command1-1-
        command2="perl -wpi -e "s/$command1//g"' $config;"
        echo -$command2-2-
        $command2
done


les données du fichier :
/var/spool/fax/outgoing/F000001/JOB.done
/var/spool/fax/outgoing/F000001/JOB.suspended

l'exécution :
-/var/spool/fax/outgoing/F000001/JOB.done
/var/spool/fax/outgoing/F000001/JOB.suspended-
-\/var\/spool\/fax\/outgoing\/F000001\/JOB.done
\/var\/spool\/fax\/outgoing\/F000001\/JOB.suspended-1-
-perl -wpi -e 's/\/var\/spool\/fax\/outgoing\/F000001\/JOB.done
\/var\/spool\/fax\/outgoing\/F000001\/JOB.suspended//g'
/home/e-smith/files/ibays/fax-voice1/html/fax/filesuspendu;-2-
Can't find string terminator "'" anywhere before EOF at -e line 1.

si je tape la cde perl en ligne de cde :
perl -wpi -e 's/\/var\/spool\/fax\/outgoing\/F000001\/JOB.done
\/var\/spool\/fax\/outgoing\/F000001\/JOB.suspended//g'
/home/e-smith/files/ibays/fax-voice1/html/fax/filesuspendu;

Cela m'efface bien la ligne... sauf le retour chariot...

Il y a peut-être des choses plus simple pour effacer une ligne d'un fichier!

anne