écriture dans un fichier avec shell
Résolu
lamou23
Messages postés
178
Date d'inscription
Statut
Membre
Dernière intervention
-
lamou23 -
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
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
A voir également:
- écriture dans un fichier avec shell
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Classic shell - Télécharger - Personnalisation
5 réponses
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> $
;-))
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
********************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
sed '/frop=/{ :z H n /^$/!bz x r fichier3.txt d } /path=/{ :a H n /^$/!ba x r fichier4.txt d } '
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
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 :)
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 :)
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
;-\
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> $
;-\
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..
:)
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..
:)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re-
Essaie avec ça (il faut une ligne vide à la fin de chaque fichier) :
Normalement ça devrait passer ;-))
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 ;-))
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...
Là je ne peux faire mieux ;-\
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 ;-\
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 :
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"
$ sed '/frop=/{
r fichier1.txt
}
/path=/{
n;
r fichier2.txt
}
' toutfiche.txt
merci
merci d'avance