DeD 10 Posted September 24, 2011 Author Partager Posted September 24, 2011 sed "/toto/=" fichier Cette commande va afficher le numéro de la ligne contenant la chaîne toto. pense a faire un pipeline avec le résultat de sed avec cette option, tu m'a pas dit, le numéro de ligne, comment t'as pu l'avoir ? Citer Link to post Share on other sites
DeD 10 Posted September 24, 2011 Author Partager Posted September 24, 2011 test.txt avec dedans azerty abcdefg zaeryt abcdefg azeeza abcdefg grep "^a" test.txt | sed 's/^\(.\{7\**\).\(.*\)/\1X\2/' azerty Xbcdefg azeeza Xbcdefg ^a ligne commencant par a 's/^\(.\{7\**\).\(.*\)/\1X\2/' remplace le 7eme caractere par un X s/ c'est pour la substitution d'accord mais faut d'abord comprendre ça 's/^\(.\{7\**\).\(.*\)/\1X\2/' j'ai laché au bout de deux concaténations :crazy: je viens de trouvé le man sed en français sur le lien que je viens de publié ... souvenir souvenir, les expressions régulières :rolleyes: Citer Link to post Share on other sites
ytreza 10 Posted September 25, 2011 Partager Posted September 25, 2011 oooooooooooooo Citer Link to post Share on other sites
DeD 10 Posted September 25, 2011 Author Partager Posted September 25, 2011 sed "s/^\(az.\{6\**\)\(.\{2\**\)/\1XY/" test.txt ou sed "s/^(az.{6**)(.{2**)/\1XY/" test.txt remplacer le double etoile ** par accolade fermante en une seule étape, dans le fichier test.txt, on cherche les lignes commençant par la séquence "az" et on substitue 2 caractères à partir du 6eme caractère par un X et un Y ^az ligne commençant par "az" .{6** 6 occurrences de n'importe quel caractère apres le "az" .{2** 2 occurrences de n'importe quel caractère caracteres \1XY substitution du groupe par XY resultat azerty aXYZefg zaeryt abcdefg azeeza aXYZefg merci pour ces explications, j'ai tout compris donc l'INIste pourra se situé dans la ligne juste avant le mot qu'elle veut substitué par le nombre de caractère qui le précède... ou par le nombre d'occurrence de cette chaine dans test.txt sed "s/azerty/AZERTY/2" le sed va remplacer la 2eme occurrence de azerty par AZERTY ... j'aimerai bien avoir bcp plus de détails concernant le positionnement de la chaine dans son cas ... Citer Link to post Share on other sites
AlgerianDream 10 Posted September 25, 2011 Partager Posted September 25, 2011 merci pour ces explications, j'ai tout compris donc l'INIste pourra se situé dans la ligne juste avant le mot qu'elle veut substitué par le nombre de caractère qui le précède... ou par le nombre d'occurrence de cette chaine dans test.txt sed "s/azerty/AZERTY/2" le sed va remplacer la 2eme occurrence de azerty par AZERTY ... j'aimerai bien avoir bcp plus de détails concernant le positionnement de la chaine dans son cas ... Salut DeD, C'est bon, j'ai contourné le problème puisque c'était urgent et les regexp c'est pas mon fort!! j'ai modifié le programme qui génère mon fichier text selon mon besoin et je l'ai régénéré, tout simplement :D Mais je veux bien apprendre comment ça marche les regexp, je pense que j'en aurai besoin dans le futur... ton sed "s/azerty/AZERTY/2" je l'ai testé, il marche, mais c'est la notion de positions que je n'arrive pas à retrouver... par exemple pour remplacer les caractères qui se trouvent de la position 10 jusqu'à la position 15 de chaque ligne par "XXXXXX". Citer Link to post Share on other sites
Abdell 10 Posted September 25, 2011 Partager Posted September 25, 2011 Salut DeD, C'est bon, j'ai contourné le problème puisque c'était urgent et les regexp c'est pas mon fort!! j'ai modifié le programme qui génère mon fichier text selon mon besoin et je l'ai régénéré, tout simplement :D Mais je veux bien apprendre comment ça marche les regexp, je pense que j'en aurai besoin dans le futur... ton sed "s/azerty/AZERTY/2" je l'ai testé, il marche, mais c'est la notion de positions que je n'arrive pas à retrouver... par exemple pour remplacer les caractères qui se trouvent de la position 10 jusqu'à la position 15 de chaque ligne par "XXXXXX". looool j'ai fait un truc pareil la semaine dernière ^^ Citer Link to post Share on other sites
AlgerianDream 10 Posted September 25, 2011 Partager Posted September 25, 2011 sed "s/^\(az.\{6\**\)\(.\{2\**\)/\1XY/" test.txt ou sed "s/^(az.{6**)(.{2**)/\1XY/" test.txt remplacer le double etoile ** par accolade fermante en une seule étape, dans le fichier test.txt, on cherche les lignes commençant par la séquence "az" et on substitue 2 caractères à partir du 6eme caractère par un X et un Y ^az ligne commençant par "az" .{6** 6 occurrences de n'importe quel caractère apres le "az" .{2** 2 occurrences de n'importe quel caractère caracteres \1XY substitution du groupe par XY resultat azerty aXYZefg zaeryt abcdefg azeeza aXYZefg c'est trop compliqué, mais je pense que ça répond à mon besoin, demain je le teste et je vous dirai si c'est ok!! Merci beaucoup Citer Link to post Share on other sites
AlgerianDream 10 Posted September 25, 2011 Partager Posted September 25, 2011 looool j'ai fait un truc pareil la semaine dernière ^^ et c'est maintenant que tu te manifeste??? loll Citer Link to post Share on other sites
ytreza 10 Posted September 25, 2011 Partager Posted September 25, 2011 oooooooooooooo Citer Link to post Share on other sites
Abdell 10 Posted September 25, 2011 Partager Posted September 25, 2011 et c'est maintenant que tu te manifeste??? loll tu sais que je ne fais que le minimum moi donc c pas moi qui va t'aider en programmation :mdr: Citer Link to post Share on other sites
AlgerianDream 10 Posted September 25, 2011 Partager Posted September 25, 2011 pour la position, c'est probablement pas super élégant mais quelque chose dans ce genre fonctionne sed "s/^\(.\{10\**\)\(.\{5\**\)/\1XXXXXX/" test.txt ** accolade fermante ok c'est noté!! mais en lisant juste la doc c'est pas évident d'écrire une commande pareil!! Citer Link to post Share on other sites
AlgerianDream 10 Posted September 25, 2011 Partager Posted September 25, 2011 tu sais que je ne fais que le minimum moi donc c pas moi qui va t'aider en programmation :mdr: c'est trés gentil!! et moi je comptais pas sur toi de toute façon :p au fait, t'es fort en quoi toi?? bach nheblek de temps en temps :D Citer Link to post Share on other sites
Abdell 10 Posted September 25, 2011 Partager Posted September 25, 2011 c'est trés gentil!! et moi je comptais pas sur toi de toute façon :p au fait, t'es fort en quoi toi?? bach nheblek de temps en temps :D makla we re9ad :p Citer Link to post Share on other sites
ytreza 10 Posted September 25, 2011 Partager Posted September 25, 2011 oooooooooooooo Citer Link to post Share on other sites
AlgerianDream 10 Posted September 25, 2011 Partager Posted September 25, 2011 makla we re9ad :p je connais pas ces langages moi!! :mdr: feniane va!! :D Citer Link to post Share on other sites
AlgerianDream 10 Posted September 25, 2011 Partager Posted September 25, 2011 non c'est horrible...faut un sacré entrainement...je l'ai dit je suis faché avec les regex, je les évite quand je peux :D et c'est ce que j'ai fait, je les ai évité ;) mais maintenant je ss curieuse de savoir comment ça marche!! Citer Link to post Share on other sites
DeD 10 Posted September 25, 2011 Author Partager Posted September 25, 2011 et c'est ce que j'ai fait, je les ai évité ;) mais maintenant je ss curieuse de savoir comment ça marche!! laisse tombé ... THL ma bête noire Citer Link to post Share on other sites
AlgerianDream 10 Posted September 25, 2011 Partager Posted September 25, 2011 laisse tombé ... THL ma bête noire j'ai jamé fait de THL moi, peut être c pour ça je n'arrive pas à saisir les regexp!! :D Citer Link to post Share on other sites
Michalee 10 Posted September 26, 2011 Partager Posted September 26, 2011 laisse tombé ... THL ma bête noire haha THL c est cool mdr,mais t malade ou quoi ts les informaticiens adorent ce module d enfer :rolleyes: Citer Link to post Share on other sites
DeD 10 Posted September 26, 2011 Author Partager Posted September 26, 2011 haha THL c est cool mdr,mais t malade ou quoi ts les informaticiens adorent ce module d enfer :rolleyes: Mais bien suuuur Micha "s/\ ([0-9][0-9]*\ )/aa\ 1aa/" :confused: hein ??? Citer Link to post Share on other sites
Apulee 10 Posted September 27, 2011 Partager Posted September 27, 2011 ........ pour remplacer les caractères qui se trouvent de la position 10 jusqu'à la position 15 de chaque ligne par "XXXXXX". $ sed -r 's:^(.{9**)(.{6**):\1XXXXXX:' Remplace ** par une accolade fermante. Citer Link to post Share on other sites
Michalee 10 Posted September 28, 2011 Partager Posted September 28, 2011 Mais bien suuuur Micha "s/\ ([0-9][0-9]*\ )/aa\ 1aa/" :confused: hein ??? t sûr k c est une simple expression régulière...ça fait peur yaw Citer Link to post Share on other sites
karim75260 10 Posted September 28, 2011 Partager Posted September 28, 2011 Salut experts Zé expertes :cool: Citer Link to post Share on other sites
Michalee 10 Posted September 29, 2011 Partager Posted September 29, 2011 Salut experts Zé expertes :cool: wa3lik le salut, kesh new dans le domaine? Citer Link to post Share on other sites
Abdell119 10 Posted October 3, 2011 Partager Posted October 3, 2011 Salam ... J'ai un PC que je dois un peu rafistolé ... Le blème c'est que le CD de Win ne boot pas, est-ce qu'il y'a une tite astuce ou faut-il avoir une disquette de démarrage ?? Marsi :p Citer Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.