|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2010 Messages : 92 ![]() |
Bonjour, bonsoir
Je voudrais votre aide pour formater un fichier. Ce fichier contient beaucoup de lignes. Chaque ligne est composée de N caractères intéressants (N constant). Ensuite il y a des caracteres que je veux retirer (M constant). Pour finir je voudrais bien enlever les "\n" pour n'avoir qu'une seule ligne. Est-ce bien réalisable? Merci pour votre attention et votre aide. |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 072 ![]() |
Bonjour,
en bash, ou en sh ? ou…? |
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2010 Messages : 92 ![]() |
Avec n'importe quel outils linux
Je suis en train de voir quelques tuto sed. Je crois qu'il y a moyen de faire des opérations intéressantes sur les chaines. Cela dit je suis pressé alors si vous avez la solution toute cuite ... :p Voici un exemple de ligne: 726f 676e 616d 655f 6675 6c6c 0073 7472 rogname_full.str je veux retirer rogname_full.str NB: il y a 2 espaces avant rogname_full.str. 1 seul entre les hexa. |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Salut,
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Si tu préfères tout faire avec "sed" (autrement dit sans pipe) :
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2010 Messages : 92 ![]() |
Magnifique ! C'est exactement ça. Bon c'est sûr, il faut que j'apprenne ça.
Merci Zipe31 Ok pour la première, la seconde est plus compliquée... Faut que je decode |
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2010 Messages : 92 ![]() |
OK pour s/ .*\n/ / même si le dollar a disparu ( $ signifie fin de ligne donc)
le préambule :z;N;$! bz; je ne sais pas encore ni Mg d'ailleurs: trouvé |
|
|
00
|
|
|
#8 | ||
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Citation:
On définit une étiquette de branchement pour pouvoir boucler dessus. N On ajoute la ligne suivante dans l'espace de travail (mémoire principale de sed) $! bz On vérifie que la dernière ligne du fichier n'est pas atteinte. "!" représente la négation, "$" la dernière ligne. Donc tant que cette dernière ligne n'est pas atteinte, on boucle ("b" pour branchement) sur l'étiquette ":z". s/ .*\n/ /Mg Une fois tout le fichier dans la mémoire principale de "sed", ça ressemble en gros à ça : Code :
hex hex blabla_bla\nhex hex blabla_bla\nhex hex blabla_bla\nhex hex blabla_bla\netc. Citation:
Le flag "M" permet de traiter la ligne dans l'espace de travail, non pas comme une seule et même ligne (ce qui est le cas normalement et à ce moment là la gourmandise légendaire des regex's seraient mise en pratique et boufferait tout jusqu'au dernier 2 espaces), mais comme des lignes séparées par une fin de lignes, et ce autant de fois que nécessaire (flag "g" pour global).
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
||
|
|
10
|
|
|
#9 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 072 ![]() |
Code :
awk -F' ' '{var = ( var ? var" "$1 : $1)} END{print var}' |
|
|
10
|
|
|
#10 |
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Oups
Y'a une erreur dans ma seconde commande ![]() \(\n\|$\) Comprendre caractère fin de ligne (\n) OU fin de ligne ($)
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|
|
00
|
|
|
#11 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2010 Messages : 92 ![]() |
Bravo pour ce tuto Zipe31.
Merci pour tout à vous deux. Avec ça je vais pouvoir automatiser pas mal d'opérations. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com