Probleme avec un script dans unix
xeer
-
xeer -
xeer -
Bonjour,
voila j'ai un probleme avec un script, bref j'utilise 2 fichier (fichier1 et fichier2)
le fichier2 est ainsi :
[new]
ligne 1
...
ligne n
[modifier]
.....
[supprimer]
......
[.....]
..........
je dois supprimer tout se ki se trouve sous supprimer à partir du fichier 1 c't-à-d ke les lignes ki se trouve sous supprimer dans le fichier 2 se trouve aussi dans la liste du fichier 1(ce fichier ne conntient ke des lignes)
et je dois faire le même chose avec modifier.
voila j'ai un probleme avec un script, bref j'utilise 2 fichier (fichier1 et fichier2)
le fichier2 est ainsi :
[new]
ligne 1
...
ligne n
[modifier]
.....
[supprimer]
......
[.....]
..........
je dois supprimer tout se ki se trouve sous supprimer à partir du fichier 1 c't-à-d ke les lignes ki se trouve sous supprimer dans le fichier 2 se trouve aussi dans la liste du fichier 1(ce fichier ne conntient ke des lignes)
et je dois faire le même chose avec modifier.
A voir également:
- Probleme avec un script dans unix
- Script vidéo youtube - Guide
- Ghost script - Télécharger - Polices de caractères
- Mas script - Accueil - Windows
- Script cmd - Guide
- Une erreur est survenue dans le script de cette page - Forum Windows 10
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.
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.
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.
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
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.