A voir également:
- Probleme avec un script dans unix
- Script vidéo youtube - Guide
- Microsoft activation script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Script cmd - Guide
- Script download - Télécharger - Édition & Programmation
5 réponses
j'ai oublié avant tout j'affiche d'abord tout la liste du fichier 1 et après je fais les commandes ci_dessus.
et automatiquement dans le fichier seeresult on voit tout la liste du fichier 1 + les nouveaux lignes sans faire une ligne vide entre les deux listes donc une forme une seul liste.
et automatiquement dans le fichier seeresult on voit tout la liste du fichier 1 + les nouveaux lignes sans faire une ligne vide entre les deux listes donc une forme une seul liste.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
22 juin 2008 à 12:28
22 juin 2008 à 12:28
Salut,
Peux-tu être un peu plus explicite s'il te plaît, en illustrant avec des exemples "avant/après" le contenu de tes fichiers "fichier1 et fichier2".
;-))
Peux-tu être un peu plus explicite s'il te plaît, en illustrant avec des exemples "avant/après" le contenu de tes fichiers "fichier1 et fichier2".
;-))
en faite le fichier 1 contient une liste de plusieurs ligne(centaines des lignes) comme ceci:
toto.titt nonrecul kkklile
titi.lilo kleos dflls
sqd.sqd sqdq sdqq
.
.
. etc...
le fichier 2 est comme ceci:
[nouveau]
(ligne vide)
klsd.sdn,s ssdfsdnf sdfnsdf
sdfdsf.sdfds df qsdfsdf
sdfqsdfsd.sdfq qsdfs dfsdff
.
.
. etc...
(ligne vide)
[supprimer]
(ligne vide)
dsfgsdf.dfsgdfg dfgsdfgd dfgsdfg
dfgsdfg.sdfg dfsgdfgd dfgfds
dfgsdfg.dfgdfsg sdfgsdf dsfgd
.
.
.etc...(ligne vide)
[modifier]
(ligne vide)
dqds.sdf qsdfqsd qsdfs
sdfqsd.sqdf sqdfqsdf qsdfqs
sdfqsd.qsdf qsdf qsffds
.
.
.etc ...
mais sache qu'on veut pas modifier ni le fichier 1 et ni le fichier 2 donc j'utilise grace cette commande:
$./script >> see_result
le fichier see_result dois contenir la liste du fichier 1 mais en supprimer les lignes qui se trouve ente [supprimer]...et la ligne vide c'est-à-dire tout se que j'ai mis en gras(voire ci-dessus).
je suis un specialiste dans la conception des sites web et des petits programme mais je reconnais que j'ai des problèmes avec les scripts sous unix.
merci.
toto.titt nonrecul kkklile
titi.lilo kleos dflls
sqd.sqd sqdq sdqq
.
.
. etc...
le fichier 2 est comme ceci:
[nouveau]
(ligne vide)
klsd.sdn,s ssdfsdnf sdfnsdf
sdfdsf.sdfds df qsdfsdf
sdfqsdfsd.sdfq qsdfs dfsdff
.
.
. etc...
(ligne vide)
[supprimer]
(ligne vide)
dsfgsdf.dfsgdfg dfgsdfgd dfgsdfg
dfgsdfg.sdfg dfsgdfgd dfgfds
dfgsdfg.dfgdfsg sdfgsdf dsfgd
.
.
.etc...(ligne vide)
[modifier]
(ligne vide)
dqds.sdf qsdfqsd qsdfs
sdfqsd.sqdf sqdfqsdf qsdfqs
sdfqsd.qsdf qsdf qsffds
.
.
.etc ...
mais sache qu'on veut pas modifier ni le fichier 1 et ni le fichier 2 donc j'utilise grace cette commande:
$./script >> see_result
le fichier see_result dois contenir la liste du fichier 1 mais en supprimer les lignes qui se trouve ente [supprimer]...et la ligne vide c'est-à-dire tout se que j'ai mis en gras(voire ci-dessus).
je suis un specialiste dans la conception des sites web et des petits programme mais je reconnais que j'ai des problèmes avec les scripts sous unix.
merci.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
23 juin 2008 à 08:15
23 juin 2008 à 08:15
En espérant avoir compris ton problème et sans avoir le temps de développer, voila un exemple à adapter :
;-))
[tmpfs]$ cat fichier1 fbjdsfbjdsfbs fjkdsfkjdsf oiytroiezytr jfhnklhjfklfjs dsfgsdf.dfsgdfg dfgsdfgd dfgsdfg dfgsdfg.sdfg dfsgdfgd dfgfds dfgsdfg.dfgdfsg sdfgsdf dsfgd . . .etc... bvx;,nbvx;vjd iuoipezhre nkfnujo kfjj [tmpfs]$ cat fichier2 [nouveau] klsd.sdn,s ssdfsdnf sdfnsdf sdfdsf.sdfds df qsdfsdf sdfqsdfsd.sdfq qsdfs dfsdff . . . etc... [supprimer] dsfgsdf.dfsgdfg dfgsdfgd dfgsdfg dfgsdfg.sdfg dfsgdfgd dfgfds dfgsdfg.dfgdfsg sdfgsdf dsfgd . . .etc... [modifier] dqds.sdf qsdfqsd qsdfs sdfqsd.sqdf sqdfqsdf qsdfqs sdfqsd.qsdf qsdf qsffds . . .etc ... [tmpfs]$ ligne1=$(sed -n '/^\[supprimer\]/,/^\[modifier\]/{//d;/^$/d;p}' fichier2 | sed -n '1p') [tmpfs]$ ligne2=$(sed -n '/^\[supprimer\]/,/^\[modifier\]/{//d;/^$/d;p}' fichier2 | sed -n '$p') [tmpfs]$ echo $ligne1 dsfgsdf.dfsgdfg dfgsdfgd dfgsdfg [tmpfs]$ echo $ligne2 .etc... [tmpfs]$ sed -n "/$ligne1/,/$ligne2/p" fichier1 dsfgsdf.dfsgdfg dfgsdfgd dfgsdfg dfgsdfg.sdfg dfsgdfgd dfgfds dfgsdfg.dfgdfsg sdfgsdf dsfgd . . .etc... [tmpfs]Si j'ai le temps dans la journée (ou ce soir alors), je détaillerai les commandes...
;-))
c'est gentil de ta part de m'avoir repondu rapidement.
j'ai testé mais ça marche pas, en faite j'ai dejà fait sur l'ajout c'est-à-dire que j'ai ajouter tout les lignes qui se trouve entre [nouveau].......et ligne vide grace à cette commande:
#je recupere le numero de la ligne ou se trouve [nouveau]
num=$(sed -n '/nouveau/=' fichier2;
#maitenant j'affiche le resultat
sed -n ''$num','/^:space:*$/'p' fichier2;
et j'utilise cette commande pour afficher le resultat dans un fichier seeresult:
$./script >> seeresult
mais je n'arrive pas avec la suppression et la modification
merci.
j'ai testé mais ça marche pas, en faite j'ai dejà fait sur l'ajout c'est-à-dire que j'ai ajouter tout les lignes qui se trouve entre [nouveau].......et ligne vide grace à cette commande:
#je recupere le numero de la ligne ou se trouve [nouveau]
num=$(sed -n '/nouveau/=' fichier2;
#maitenant j'affiche le resultat
sed -n ''$num','/^:space:*$/'p' fichier2;
et j'utilise cette commande pour afficher le resultat dans un fichier seeresult:
$./script >> seeresult
mais je n'arrive pas avec la suppression et la modification
merci.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
23 juin 2008 à 14:46
23 juin 2008 à 14:46
Oups désolé j'avais mal compris le problème ce matin ;-((
Essaie comme ça alors :
Essaie comme ça alors :
sed "/$ligne1/,/$ligne2/d" fichier1 > seeresult;-))
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 897
24 juin 2008 à 10:34
24 juin 2008 à 10:34
Ben écoute chez moi ça marche :
jp@MDK:~/tmpfs ssh$ cat fichier1 fbjdsfbjdsfbs fjkdsfkjdsf oiytroiezytr jfhnklhjfklfjs dsfgsdf.dfsgdfg dfgsdfgd dfgsdfg dfgsdfg.sdfg dfsgdfgd dfgfds dfgsdfg.dfgdfsg sdfgsdf dsfgd . . .etc... bvx;,nbvx;vjd iuoipezhre nkfnujo kfjj jp@MDK:~/tmpfs ssh$ cat fichier2 [nouveau] klsd.sdn,s ssdfsdnf sdfnsdf sdfdsf.sdfds df qsdfsdf sdfqsdfsd.sdfq qsdfs dfsdff . . . etc... [supprimer] dsfgsdf.dfsgdfg dfgsdfgd dfgsdfg dfgsdfg.sdfg dfsgdfgd dfgfds dfgsdfg.dfgdfsg sdfgsdf dsfgd . . .etc... [modifier] dqds.sdf qsdfqsd qsdfs sdfqsd.sqdf sqdfqsdf qsdfqs sdfqsd.qsdf qsdf qsffds . . .etc ... jp@MDK:~/tmpfs ssh$ ligne1=$(sed -n '/^\[supprimer\]/,/^\[modifier\]/{//d;/^$/d;p}' fichier2 | sed -n '1p') jp@MDK:~/tmpfs ssh$ ligne2=$(sed -n '/^\[supprimer\]/,/^\[modifier\]/{//d;/^$/d;p}' fichier2 | sed -n '$p') jp@MDK:~/tmpfs ssh$ sed "/$ligne1/,/$ligne2/d" fichier1 fbjdsfbjdsfbs fjkdsfkjdsf oiytroiezytr jfhnklhjfklfjs bvx;,nbvx;vjd iuoipezhre nkfnujo kfjj jp@MDK:~/tmpfs ssh$;-))
ca marche pour toi car les lignes à supprimer se suivent mais dans mon cas les lignes ne se suivent pas.
en faite c'est comme ça pour récupperer les lignes mais ça marche pas encore :
sed -n '/^\[supprimer\]/,/^\[modifier\]/{//d;/^$/d;p}' fichier2 | sed -n '1,$p'
c'est vraiment bizarre certainement il y'a quelque chose qui nous échappent.
en faite c'est comme ça pour récupperer les lignes mais ça marche pas encore :
sed -n '/^\[supprimer\]/,/^\[modifier\]/{//d;/^$/d;p}' fichier2 | sed -n '1,$p'
c'est vraiment bizarre certainement il y'a quelque chose qui nous échappent.