écriture dans un fichier avec shell [Résolu/Fermé]

Signaler
Messages postés
178
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
21 mars 2011
-
 lamou23 -
salut

je voudrais cpoier le contenu de deux fichier (fichier1.txt et fichier2.txt) dans un fichier qui s'apelle toutfiche.txt.

je m'explique, le fichier toutfiche.txt contient le code suivant:

***********toutfiche.txt*************************************************
NameTrans fn="pfx2dir" frop="sgpcentre/" dir="/rasais/web/docs/sgpcentre"


<Client urlhost="www.sgp-centre.com">
NameTrans fn="home-page" path="/rasais/web/docs/sgpcentre/index.php"
<Client>


<Client urlhost="www.sgp-centre.com">
NameTrans fn="document-root" root="/rasais/web/docs/sgpcentre"
<Client>

************************************************************************

le contenu de fichier1.txt est :

****************************fichier1.txt********************************
NameTrans fn="pfx2dir" frop="pfe/" dir="/rasais/web/docs/pfe"

************************************************************************

le contenu de fichier2.txt est :

****************************fichier2.txt********************************
<Client urlhost="www.pfe.com">
NameTrans fn="home-page" path="/rasais/web/docs/pfe/index.php"
<Client>

*********************************************************************

Mon but c'est d'éditer un script .sh qui me permet de copier le contenu de fichier1.txt et fichier2.txt dans toutfiche.txt, de telle sorte que j'ai cet ordre dans toutfiche.txt:

***********toutfich.txt*************************************************
NameTrans fn="pfx2dir" frop="sgpcentre/" dir="/rasais/web/docs/sgpcentre"
NameTrans fn="pfx2dir" frop="pfe/" dir="/rasais/web/docs/pfe"

<Client urlhost="www.sgp-centre.com">
NameTrans fn="home-page" path="/rasais/web/docs/sgpcentre/index.php"
<Client>
<Client urlhost="www.pfe.com">
NameTrans fn="home-page" path="/rasais/web/docs/pfe/index.php"
<Client>

<Client urlhost="www.sgp-centre.com">
NameTrans fn="document-root" root="/rasais/web/docs/sgpcentre"
<Client>


************************************************************************
aidez moi svl pour aboutir à la solution

merci d'avance

5 réponses

Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 781
Salut,

$ cat toutfiche.txt 
NameTrans fn="pfx2dir" frop="sgpcentre/" dir="/rasais/web/docs/sgpcentre"


<Client urlhost="www.sgp-centre.com">
NameTrans fn="home-page" path="/rasais/web/docs/sgpcentre/index.php"
<Client>


<Client urlhost="www.sgp-centre.com">
NameTrans fn="document-root" root="/rasais/web/docs/sgpcentre"
<Client> 

$ cat fichier1.txt 
NameTrans fn="pfx2dir" frop="pfe/" dir="/rasais/web/docs/pfe" 

$ cat fichier2.txt 
<Client urlhost="www.pfe.com">
NameTrans fn="home-page" path="/rasais/web/docs/pfe/index.php"
<Client> 

$ sed '/frop=/{
r fichier1.txt
}
/path=/{
n;
r fichier2.txt
}
' toutfiche.txt

NameTrans fn="pfx2dir" frop="sgpcentre/" dir="/rasais/web/docs/sgpcentre"
NameTrans fn="pfx2dir" frop="pfe/" dir="/rasais/web/docs/pfe" 


<Client urlhost="www.sgp-centre.com">
NameTrans fn="home-page" path="/rasais/web/docs/sgpcentre/index.php"
<Client>
<Client urlhost="www.pfe.com">
NameTrans fn="home-page" path="/rasais/web/docs/pfe/index.php"
<Client> 


<Client urlhost="www.sgp-centre.com">
NameTrans fn="document-root" root="/rasais/web/docs/sgpcentre"
<Client> 

$

;-))
Messages postés
178
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
21 mars 2011

peux tu m'expliquer ce bout de code:
$ sed '/frop=/{
r fichier1.txt
}
/path=/{
n;
r fichier2.txt
}
' toutfiche.txt

merci
Messages postés
178
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
21 mars 2011

s'il te plait j'aimerais bien que tu m'expliques le bout de code que tu m'as donné :)
merci d'avance
Messages postés
178
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
21 mars 2011

j'ai compris le code en fin de compte mais le problème c'est que le fichier toufiche.txt va etre rempli en fur à mesure, maintenant si je veux rajouter le contenu de deux autre fichier (fich3.txt et fich4.txt ) dans toutfiche.txt

********************fich3.txt*********
NameTrans fn="pfx2dir" frop="cgf/" dir="/rasais/web/docs/cgf
*******************************************

***********************fich4.txt****************************"
<Client urlhost=www.cgf.com">
NameTrans fn="home-page" path="/rasais/web/docs/cgf/index.php"
<Client>
*******************************************************************

afin davoir le contenu suivant de toutfiche.txt

NameTrans fn="pfx2dir" frop="sgpcentre/" dir="/rasais/web/docs/sgpcentre"
NameTrans fn="pfx2dir" frop="pfe/" dir="/rasais/web/docs/pfe"
NameTrans fn="pfx2dir" frop="cgf/" dir="/rasais/web/docs/cgf

<Client urlhost="www.sgp-centre.com">
NameTrans fn="home-page" path="/rasais/web/docs/sgpcentre/index.php"
<Client>
<Client urlhost="www.pfe.com">
NameTrans fn="home-page" path="/rasais/web/docs/pfe/index.php"
<Client>
<Client urlhost=www.cgf.com">
NameTrans fn="home-page" path="/rasais/web/docs/cgf/index.php"
<Client>


<Client urlhost="www.sgp-centre.com">
NameTrans fn="document-root" root="/rasais/web/docs/sgpcentre"
<Client>

****************************************************************

comment faire dans ce cas?????
merci d'avance
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 781
sed '/frop=/{
:z
H
n
/^$/!bz
x
r fichier3.txt
d
}
/path=/{
:a
H
n
/^$/!ba
x
r fichier4.txt
d
}
'
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 781
Explications :

/frop=/
Quand le motif est rencontré

{
On applique toutes les commandes contenues entre les accolades

:z
Étiquette

H
On ajoute le contenu de l'espace de travail (la ligne chargée) dans la mémoire secondaire

n
On charge la ligne suivante (ce qui écrase la précédente)

/^$/!bz
Si elle n'est pas vide, on se branche à l'étiquette (et on recommence)

x
Par contre si la ligne est vide, on échange le contenu des mémoires. On passe la ligne vide dans la mémoire secondaire et on remet les autres dans l'espace de travail
 
r fichier3.txt
On écrit à la suite le contenu du fichier sus-nommé

d
On efface le contenu de l'espace de travail

}
Fin des commandes de la 1ère accolade



Idem pour la seconde partie, seul le nom de l'étiquette change
Messages postés
178
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
21 mars 2011

salut
j'ai essayé la solution que tu m'as envoyée,alors:

j'ai le fichier toutfiche.txt contenant:

*******************************************toutfiche.txt*******************************************
NameTrans fn="pfx2dir" frop="sgpcentre/" dir="/rasais/web/docs/sgpcentre"
NameTrans fn="pfx2dir" frop="pfe/" dir="/rasais/web/docs/pfe"


<Client urlhost="www.sgp-centre.com">
NameTrans fn="home-page" path="/rasais/web/docs/sgpcentre/index.php"
<Client>
<Client urlhost="www.pfe.com">
NameTrans fn="home-page" path="/rasais/web/docs/pfe/index.php"
<Client>


<Client urlhost="www.sgp-centre.com">
NameTrans fn="document-root" root="/rasais/web/docs/sgpcentre"
<Client>
*****************************************************************************

et j'ai les fichiers :
********************fich3.txt*********
NameTrans fn="pfx2dir" frop="cgf/" dir="/rasais/web/docs/cgf
*******************************************

***********************fich4.txt****************************"
<Client urlhost=www.cgf.com">
NameTrans fn="home-page" path="/rasais/web/docs/cgf/index.php"
<Client>
*******************************************************************

lorsque j'ai exécuté le script que tu m'as donné contenant:
*********************************************
sed '/frop=/{
:z
H
n
/^$/!bz
x
r fichier3.txt
d
}
/path=/{
:a
H
n
/^$/!ba
x
r fichier4.txt
d
}
' toutfiche.txt
*****************************************

j'ai eu ce résultat:

************************************************
NameTrans fn="pfx2dir" frop="sgpcentre/" dir="/rasais/web/docs/sgpcentre"
NameTrans fn="pfx2dir" frop="pfe/" dir="/rasais/web/docs/pfe"
NameTrans fn="pfx2dir" frop="cfg/" dir="/rasais/web/docs/cfg

<Client urlhost="www.sgp-centre.com">
NameTrans fn="home-page" path="/rasais/web/docs/sgpcentre/index.php"
<Client>
<Client urlhost="www.pfe.com">
NameTrans fn="home-page" path="/rasais/web/docs/pfe/index.php"
<Client>
<Client urlhost=www.cfg.com">
NameTrans fn="home-page" path="/rasais/web/docs/cfg/index.php"
<Client>

<Client urlhost="www.sgp-centre.com">
NameTrans fn="document-root" root="/rasais/web/docs/sgpcentre"
<Client>


***********************************************************************************************************

C'est le BON résultat que je veux, maintenant il me reste un problème!!!

fich3.txt et fich4.txt vont changer de contenus a chak fois et moi je veux que leurs contenus soit ajouté au fichier toutfiche.txt à chaque fois que j'exécute le code que tu m'as donné:

j'ai essayé de changé fich3 et fich4 et j'ai mis ceci:
********************fich3.txt*********
NameTrans fn="pfx2dir" frop="ll/" dir="/rasais/web/docs/ll
*******************************************

***********************fich4.txt****************************"
<Client urlhost=www.ll.com">
NameTrans fn="home-page" path="/rasais/web/docs/ll/index.php"
<Client>
*******************************************************************

en exécutant le script ,j'ai eu ceci (il ma écrasé la dernière ligne et l'a remplécé par le contenu de fich3.txt et fich4.txt comme suit:

************************************************
NameTrans fn="pfx2dir" frop="sgpcentre/" dir="/rasais/web/docs/sgpcentre"
NameTrans fn="pfx2dir" frop="pfe/" dir="/rasais/web/docs/pfe"
NameTrans fn="pfx2dir" frop="ll/" dir="/rasais/web/docs/ll

<Client urlhost="www.sgp-centre.com">
NameTrans fn="home-page" path="/rasais/web/docs/sgpcentre/index.php"
<Client>
<Client urlhost="www.pfe.com">
NameTrans fn="home-page" path="/rasais/web/docs/pfe/index.php"
<Client>
<Client urlhost=www.ll.com">
NameTrans fn="home-page" path="/rasais/web/docs/ll/index.php"
<Client>

<Client urlhost="www.sgp-centre.com">
NameTrans fn="document-root" root="/rasais/web/docs/sgpcentre"
<Client>


***********************************************************************************************************
Le résultat que je voulais c'est bien:


************************************************
NameTrans fn="pfx2dir" frop="sgpcentre/" dir="/rasais/web/docs/sgpcentre"
NameTrans fn="pfx2dir" frop="pfe/" dir="/rasais/web/docs/pfe"
NameTrans fn="pfx2dir" frop="sgp/" dir="/rasais/web/docs/sgp"
NameTrans fn="pfx2dir" frop="ll/" dir="/rasais/web/docs/ll

<Client urlhost="www.sgp-centre.com">
NameTrans fn="home-page" path="/rasais/web/docs/sgpcentre/index.php"
<Client>
<Client urlhost="www.pfe.com">
NameTrans fn="home-page" path="/rasais/web/docs/pfe/index.php"
<Client>
<Client urlhost=www.sgp.com">
NameTrans fn="home-page" path="/rasais/web/docs/sgp/index.php"
<Client>
<Client urlhost=www.ll.com">
NameTrans fn="home-page" path="/rasais/web/docs/ll/index.php"
<Client>

<Client urlhost="www.sgp-centre.com">
NameTrans fn="document-root" root="/rasais/web/docs/sgpcentre"
<Client>


*************************************************************************************************

Peux tu me dire que dois je faire pour avoir le résultat ci-dessus??

je te remercie :)
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 781
Re-


Bizarre en effet, j'ai exactement le même résultat ;-\

Par contre en rajoutant un saut de ligne dans les fichiers fich3 et fich4

$ cat toutfiche.txt 
NameTrans fn="pfx2dir" frop="sgpcentre/" dir="/rasais/web/docs/sgpcentre"
NameTrans fn="pfx2dir" frop="pfe/" dir="/rasais/web/docs/pfe"
NameTrans fn="pfx2dir" frop="cfg/" dir="/rasais/web/docs/cfg

<Client urlhost="www.sgp-centre.com">
NameTrans fn="home-page" path="/rasais/web/docs/sgpcentre/index.php"
<Client>
<Client urlhost="www.pfe.com">
NameTrans fn="home-page" path="/rasais/web/docs/pfe/index.php"
<Client>
<Client urlhost=www.cfg.com">
NameTrans fn="home-page" path="/rasais/web/docs/cfg/index.php"
<Client>

<Client urlhost="www.sgp-centre.com">
NameTrans fn="document-root" root="/rasais/web/docs/sgpcentre"
<Client> 

$ cat fich3.txt
NameTrans fn="pfx2dir" frop="ll/" dir="/rasais/web/docs/ll"
 
$ cat fich4.txt
<Client urlhost=www.ll.com">
NameTrans fn="home-page" path="/rasais/web/docs/ll/index.php"
<Client>
 
$ sed '/frop=/{
:z
H
n
/^$/!bz
x
r fich3.txt
d
}
/path=/{
:a
H
n
/^$/!ba
x
r fich4.txt
d
}
' toutfiche.txt 

NameTrans fn="pfx2dir" frop="sgpcentre/" dir="/rasais/web/docs/sgpcentre"
NameTrans fn="pfx2dir" frop="pfe/" dir="/rasais/web/docs/pfe"
NameTrans fn="pfx2dir" frop="cfg/" dir="/rasais/web/docs/cfg
NameTrans fn="pfx2dir" frop="ll/" dir="/rasais/web/docs/ll"
 
<Client urlhost="www.sgp-centre.com">
NameTrans fn="home-page" path="/rasais/web/docs/sgpcentre/index.php"
<Client>
<Client urlhost="www.pfe.com">
NameTrans fn="home-page" path="/rasais/web/docs/pfe/index.php"
<Client>
<Client urlhost=www.cfg.com">
NameTrans fn="home-page" path="/rasais/web/docs/cfg/index.php"
<Client>
<Client urlhost=www.ll.com">
NameTrans fn="home-page" path="/rasais/web/docs/ll/index.php"
<Client>
 
<Client urlhost="www.sgp-centre.com">
NameTrans fn="document-root" root="/rasais/web/docs/sgpcentre"
<Client> 

$


;-\
Messages postés
178
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
21 mars 2011

salut

j'ai essayé de rajouter les saut de lignes effectivement ça marche.
mais le problème est tjrs prépsent si je modifie les valeurs de fich3.txt et fich4.txt et j'essay de réexécuter à nouveau. ce qui se passe c'est lorsqu'il rajoute le contenu de fich3 il écrase la dernière ligne et il l'a remplace avec le nouveau contenu de fich3.ce que je voulais moi c'est à chaque fois que je change le con tenu de fich3 et fich4 et je réexécute le script,il me rajoute à chaque fois leurs contenu dans toutfiche.txt et non pas exécraser les dernière lignes et les remplacer avec le nouveau contenu de fich3 et fich4..
:)
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 781
Figures-toi qu'après t'avoir envoyé la réponse, c'est ce que j'ai constaté aussi.

J'ai passé une bonne partie de la journée à triturer la syntaxe dans tous les sens sans arriver à un résultat probant ;-(

Je suis désolé mais je n'ai rien d'autre à te proposer, sorry ;-\
Messages postés
178
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
21 mars 2011

je te remercie quand même pour l'effort fourni pour m'aider :)
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 781
Re-

Essaie avec ça (il faut une ligne vide à la fin de chaque fichier) :

/frop=/{
:z
N
/\n$/!bz
s/\(.*\)\n$/\1/
r fich3.txt
}
/path=/{
:a
N
/\n$/!ba
s/\(.*\)\n$/\1/
r fich4.txt
}


Normalement ça devrait passer ;-))
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 781
Oui j'ai testé et chez moi ça marche ;-\

Je me sers de "cat -A" afin d'afficher les caractères de fin de ligne...

jp@jp-kermic:~/trash/rep$ cat -A toutfiche.txt
NameTrans fn="pfx2dir" frop="sgpcentre/" dir="/rasais/web/docs/sgpcentre"$
NameTrans fn="pfx2dir" frop="pfe/" dir="/rasais/web/docs/pfe"$
NameTrans fn="pfx2dir" frop="cfg/" dir="/rasais/web/docs/cfg$
$
<Client urlhost="www.sgp-centre.com">$
NameTrans fn="home-page" path="/rasais/web/docs/sgpcentre/index.php"$
<Client>$
<Client urlhost="www.pfe.com">$
NameTrans fn="home-page" path="/rasais/web/docs/pfe/index.php"$
<Client>$
<Client urlhost=www.cfg.com">$
NameTrans fn="home-page" path="/rasais/web/docs/cfg/index.php"$
<Client>$
$
<Client urlhost="www.sgp-centre.com">$
NameTrans fn="document-root" root="/rasais/web/docs/sgpcentre"$
<Client> $

jp@jp-kermic:~/trash/rep$ cat -A fich3.txt 
NameTrans fn="pfx2dir" frop="ll/" dir="/rasais/web/docs/ll"$
$

jp@jp-kermic:~/trash/rep$ cat -A fich4.txt 
<Client urlhost=www.ll.com">$
NameTrans fn="home-page" path="/rasais/web/docs/ll/index.php"$
<Client>$
$

jp@jp-kermic:~/trash/rep$ sed '/frop=/{
:z
N
/\n *$/!bz
s/\(.*\)\n$/\1/
r fich3.txt
}
/path=/{
:a
N
/\n *$/!ba
s/\(.*\)\n$/\1/
r fich4.txt
}
' toutfiche.txt
NameTrans fn="pfx2dir" frop="sgpcentre/" dir="/rasais/web/docs/sgpcentre"
NameTrans fn="pfx2dir" frop="pfe/" dir="/rasais/web/docs/pfe"
NameTrans fn="pfx2dir" frop="cfg/" dir="/rasais/web/docs/cfg
NameTrans fn="pfx2dir" frop="ll/" dir="/rasais/web/docs/ll"

<Client urlhost="www.sgp-centre.com">
NameTrans fn="home-page" path="/rasais/web/docs/sgpcentre/index.php"
<Client>
<Client urlhost="www.pfe.com">
NameTrans fn="home-page" path="/rasais/web/docs/pfe/index.php"
<Client>
<Client urlhost=www.cfg.com">
NameTrans fn="home-page" path="/rasais/web/docs/cfg/index.php"
<Client>
<Client urlhost=www.ll.com">
NameTrans fn="home-page" path="/rasais/web/docs/ll/index.php"
<Client>

<Client urlhost="www.sgp-centre.com">
NameTrans fn="document-root" root="/rasais/web/docs/sgpcentre"
<Client> 

jp@jp-kermic:~/trash/rep$ sed '/frop=/{
:z
N
/\n *$/!bz
s/\(.*\)\n$/\1/
r fich3.txt
}
/path=/{
:a
N
/\n *$/!ba
s/\(.*\)\n$/\1/
r fich4.txt
}
' toutfiche.txt > out.txt 

jp@jp-kermic:~/trash/rep$ cat -A out.txt
NameTrans fn="pfx2dir" frop="sgpcentre/" dir="/rasais/web/docs/sgpcentre"$
NameTrans fn="pfx2dir" frop="pfe/" dir="/rasais/web/docs/pfe"$
NameTrans fn="pfx2dir" frop="cfg/" dir="/rasais/web/docs/cfg$
NameTrans fn="pfx2dir" frop="ll/" dir="/rasais/web/docs/ll"$
$
<Client urlhost="www.sgp-centre.com">$
NameTrans fn="home-page" path="/rasais/web/docs/sgpcentre/index.php"$
<Client>$
<Client urlhost="www.pfe.com">$
NameTrans fn="home-page" path="/rasais/web/docs/pfe/index.php"$
<Client>$
<Client urlhost=www.cfg.com">$
NameTrans fn="home-page" path="/rasais/web/docs/cfg/index.php"$
<Client>$
<Client urlhost=www.ll.com">$
NameTrans fn="home-page" path="/rasais/web/docs/ll/index.php"$
<Client>$
$
<Client urlhost="www.sgp-centre.com">$
NameTrans fn="document-root" root="/rasais/web/docs/sgpcentre"$
<Client> $

jp@jp-kermic:~/trash/rep$ sed '/frop=/{
:z
N
/\n *$/!bz
s/\(.*\)\n$/\1/
r fich3.txt
}
/path=/{
:a
N
/\n *$/!ba
s/\(.*\)\n$/\1/
r fich4.txt
}
' out.txt  > out2.txt
 
jp@jp-kermic:~/trash/rep$ cat -A out2.txt 
NameTrans fn="pfx2dir" frop="sgpcentre/" dir="/rasais/web/docs/sgpcentre"$
NameTrans fn="pfx2dir" frop="pfe/" dir="/rasais/web/docs/pfe"$
NameTrans fn="pfx2dir" frop="cfg/" dir="/rasais/web/docs/cfg$
NameTrans fn="pfx2dir" frop="ll/" dir="/rasais/web/docs/ll"$
NameTrans fn="pfx2dir" frop="ll/" dir="/rasais/web/docs/ll"$
$
<Client urlhost="www.sgp-centre.com">$
NameTrans fn="home-page" path="/rasais/web/docs/sgpcentre/index.php"$
<Client>$
<Client urlhost="www.pfe.com">$
NameTrans fn="home-page" path="/rasais/web/docs/pfe/index.php"$
<Client>$
<Client urlhost=www.cfg.com">$
NameTrans fn="home-page" path="/rasais/web/docs/cfg/index.php"$
<Client>$
<Client urlhost=www.ll.com">$
NameTrans fn="home-page" path="/rasais/web/docs/ll/index.php"$
<Client>$
<Client urlhost=www.ll.com">$
NameTrans fn="home-page" path="/rasais/web/docs/ll/index.php"$
<Client>$
$
<Client urlhost="www.sgp-centre.com">$
NameTrans fn="document-root" root="/rasais/web/docs/sgpcentre"$
<Client> $

jp@jp-kermic:~/trash/rep$


Là je ne peux faire mieux ;-\
Messages postés
178
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
21 mars 2011

c'est bizarre, j'ai appliqué exactement la même chose mais mais il m'efface toujours la dernière ligne.
c'est vraiment étonnant :\
Messages postés
178
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
21 mars 2011

bon comme ça ,ça a marché, je vois seulement qu'il faut à chaque fois modifier le fichier de sortie (out.txt,out2.txt....).
avec un seul fichier seulement ça marche toujours pas.
je veux seulement une petite explication sur le code "N
/\n *$/!bz
s/\(.*\)\n$/\1/
"

merci jipicy ;)
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 781
bon comme ça ,ça a marché, je vois seulement qu'il faut à chaque fois modifier le fichier de sortie (out.txt,out2.txt....).
avec un seul fichier seulement ça marche toujours pas.

Normalement avec l'option "-i" (en place) de "sed", tu devrais pouvoir effectuer les changements directement dans le fichier original.
Quelle version de "sed" as-tu ?


je veux seulement une petite explication sur le code
Il y a une erreur, enfin non, mais un truc en trop que j'avais rajouté pour mes tests .
Il faut écrire "/\n$/!bz" et non "/\n *$/!bz"


Explications :
N 
On ajoute la ligne suivante à la suite de celle déjà présente dans l'espace de travail (mémoire principale) 

/\n$/!bz 
Si la ligne dans l'espace de travail ne se termine pas ($) par le caractère fin de ligne (\n), on boucle en se branchant à l'étiquette "z" 

s/\(.*\)\n$/\1/ 
Si la ligne se termine par un caractère fin de ligne, on supprime ce caractère fin de ligne en ne conservant que ce qui se trouve avant, emploi des références arrières, mises en correspondance de ce qui se trouve entre parenthèses et sa référence le "\1"
merci pour l'explication :-)