|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : avril 2010 Messages : 49 ![]() |
Bonjour,
J'ai une chaine #TOTO #TITI #TUTU #TATA... Je voudrais qu'à partir du deuxième #, il y'ait une retour à la ligne avant chacun des # suivants, ce qui donnerait #TOTO #TITI #TUTU #TATA ... NB : le nombre de # n'est pas fixe. J'ai déjà essayé avec un sed 's/#/\\\n/g' mais le \n n'est pas interprété j'obtiens \n#TOTO \n#TITI \n#TUTU \n#TATA Merci d'avance |
|
|
10
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|
|
10
|
|
|
#3 | ||
|
Membre Expert
![]() |
Question con: dans ton exemple, tu n'as pas d'espaces dans les textes, c'est le cas aussi dans ta vraie chaine ?
Si oui, tu peux utiliser tr: Code :
|
||
|
|
20
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Inscription : avril 2010 Messages : 49 ![]() |
Merci à tous les deux!
Par contre, seule la solution marche chez moi, ça vient peut être de mon ksh qui est une ancienne version... Voici le résultat que ça donne #TOTOn#TITIn#TUTUn#TATA Je vais donc prendre la solution de Alek-C qui me convient parfaitement
|
|
|
10
|
|
|
#5 | |||
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Citation:
Quelle version de ksh ? Quelle version de sed ? Avec ksh93 : Code :
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|||
|
|
10
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Inscription : avril 2010 Messages : 49 ![]() |
En fait j'ai dit une bétise la solution de Alek-C ne va pas marcher lorsque j'aurais des chaînes de caractère avec des espaces à la place des TOTO...
Sinon : Quel système ? AIX Version 5.3 Quelle version de ksh ? je ne sais pas comment on la trouve Quelle version de sed ? je ne sais pas comment on la trouve |
|
|
10
|
|
|
#7 | |
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Citation:
ksh -v sed -v
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|
|
|
10
|
|
|
#8 |
|
Nouveau Membre du Club
![]() Inscription : avril 2010 Messages : 49 ![]() |
C'est essayé déjà mais ça marche pas
|
|
|
10
|
|
|
#9 | ||
|
Membre éclairé
![]() Lilian HeraultArchitecte technique Inscription : juin 2010 Messages : 215 ![]() |
Bonjour
Essais ceci: Code :
|
||
|
|
10
|
|
|
#10 |
|
Nouveau Membre du Club
![]() Inscription : avril 2010 Messages : 49 ![]() |
Merci Lilian on s'en rapproche ça me donne :
# #TOTO #TITI #TUTU #TATA Pour info, à quoi sert la variable IFS? |
|
|
10
|
|
|
#11 | ||
|
Membre éclairé
![]() Lilian HeraultArchitecte technique Inscription : juin 2010 Messages : 215 ![]() |
Cj_dal,
La variable IFS représente le séparateur de champs, par défaut elle contient l'espace, le retour chariot (et le tab ?). Tu peux la modifier pour utiliser d'autres séparateurs, en l’occurrence pour toi le # Dans le cas de ce que je t'ai donné, la première ligne s'explique parce que la variable commence par un séparateur. Pour le résoudre il faut donc que tu élimines les lignes contenant uniquement # Code :
|
||
|
|
10
|
|
|
#12 |
|
Membre éclairé
![]() Lilian HeraultArchitecte technique Inscription : juin 2010 Messages : 215 ![]() |
Lorsque tu dis que l'on se rapproche, que te manque-t-il ?
Lilian. |
|
|
01
|
|
|
#13 | ||
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Et avec "awk" ?
Code :
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
||
|
|
10
|
|
|
#14 | ||
|
Nouveau Membre du Club
![]() Inscription : avril 2010 Messages : 49 ![]() |
Merci à tous ça marche correctement avec :
Code :
Bonne fin de journée |
||
|
|
10
|
|
|
#15 | ||
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 070 ![]() |
Bonjour,
avec ksh93 : Code :
|
||
|
|
10
|
|
|
#16 | ||||||
|
Membre Expert
![]() |
Sinon, quand je bosse sur de l'AIX/HPUX/... j'utilise souvent perl pour éviter de me prendre la tête
Perl est presque toujours installé partout, fonctionne à peu près toujours pareil sur les trucs de base, permet d'écrire un programme simple très rapidement et reste assez efficace en terme de performances... exemple sur 1'000'000 de mots créés avec Les infos sur le fichier d'exemple et sa création (1ère ligne): Code :
Code :
Code :
|
||||||
|
|
10
|
|
|
#17 | |||||
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 534 ![]() |
Citation:
tu devrais enchainer Code :
Code :
|
|||||
|
|
01
|
|
|
#18 | |||
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Re-
Citation:
Il y a un espace en début d'expression
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|||
|
|
00
|
|
|
#19 | |||||
|
Membre Expert
![]() |
Citation:
En plus, je peux me gourer, mais d'après mes tests, quand tu mets le 1d, ça vire la première ligne ... et le reste : Code :
Et pour faire plaisir à zipe31 (qui a cependant entièrement raison, sauf que pour une raison qui restera un mystère, ça ne fonctionne pas chez Cj_Dal) :Code :
|
|||||
|
|
00
|
|
|
#20 |
|
Nouveau Membre du Club
![]() Inscription : avril 2010 Messages : 49 ![]() |
Zipe31, pour info, ta solution ne marche pas chez moi, les retours à la ligne ne s'effectuent pas
Alek-C, on m'a également dit du bien de PERL mais il n'est pas installé sur notre environnement, merci quand même frp31, le fait de placer un ;1d dans le premier sed ne m'affiche plus rien... j'ai l'air d'avoir un environnement vraiment particulier NB : désolé de pas reprendre les bouts de code, je ne connais pas la balise qu'il faut utiliser |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com