écriture dans un fichier avec shell
Résolu/Fermé
lamou23
Messages postés
178
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
21 mars 2011
-
23 avril 2010 à 19:43
lamou23 - 28 avril 2010 à 18:23
lamou23 - 28 avril 2010 à 18:23
A voir également:
- écriture dans un fichier avec shell
- Fichier rar - Guide
- Fichier host - Guide
- Fichier iso - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
5 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
23 avril 2010 à 20:12
23 avril 2010 à 20:12
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> $
;-))
lamou23
Messages postés
178
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
21 mars 2011
23 avril 2010 à 21:21
23 avril 2010 à 21:21
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
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
24 avril 2010 à 00:59
24 avril 2010 à 00:59
sed '/frop=/{ :z H n /^$/!bz x r fichier3.txt d } /path=/{ :a H n /^$/!ba x r fichier4.txt d } '
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
24 avril 2010 à 10:35
24 avril 2010 à 10:35
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
lamou23
Messages postés
178
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
21 mars 2011
24 avril 2010 à 20:10
24 avril 2010 à 20:10
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 :)
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
25 avril 2010 à 00:23
25 avril 2010 à 00:23
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> $
;-\
lamou23
Messages postés
178
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
21 mars 2011
25 avril 2010 à 20:06
25 avril 2010 à 20:06
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..
:)
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
25 avril 2010 à 20:09
25 avril 2010 à 20:09
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 ;-\
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 ;-\
lamou23
Messages postés
178
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
21 mars 2011
25 avril 2010 à 20:39
25 avril 2010 à 20:39
je te remercie quand même pour l'effort fourni pour m'aider :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
26 avril 2010 à 11:48
26 avril 2010 à 11:48
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 ;-))
lamou23
Messages postés
178
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
21 mars 2011
27 avril 2010 à 17:08
27 avril 2010 à 17:08
j'ai essayé le code ci-dessus, chez moi ça n'a pas marché, je sais pas si tu l'as déja essayé avec le cas dont on a parlé ou pas.
moi j'ia essayé avec mon cas mais je crois que ça ne marche toujours pas
:)
moi j'ia essayé avec mon cas mais je crois que ça ne marche toujours pas
:)
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
27 avril 2010 à 18:46
27 avril 2010 à 18:46
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 ;-\
lamou23
Messages postés
178
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
21 mars 2011
27 avril 2010 à 22:58
27 avril 2010 à 22:58
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 :\
c'est vraiment étonnant :\
lamou23
Messages postés
178
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
21 mars 2011
27 avril 2010 à 23:07
27 avril 2010 à 23:07
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 ;)
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 ;)
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
Modifié par jipicy le 28/04/2010 à 18:25
Modifié par jipicy le 28/04/2010 à 18:25
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"
23 avril 2010 à 20:25
$ sed '/frop=/{
r fichier1.txt
}
/path=/{
n;
r fichier2.txt
}
' toutfiche.txt
merci
23 avril 2010 à 20:54
merci d'avance