Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
manipuler des chaines de caractère
Envoyé par: edouard_31

Bonjour smiling smiley,
Je débute dans la programmation en bash
je souhaiterai pouvoir manipuler les chaines de caractère de ce fichier original.txt et ainsi découvrir un peu plus le bash.

original.txt
4072346_20110717165125.avi
4072356_20110717190556.avi
4072365_20110717211436.avi
4072369_20110718072454.avi
4072377_20110718092944.avi
4072367_20110718093425.avi
4072385_20110718112906.avi
4072388_20110718120748.avi
4072389_20110718121618.avi
4072392_20110718135844.avi
4072396_20110718142212.avi

je souhaiterai mettre la partie avant le caractère suivant _ dans un fichier (avant.txt) et la partie d'apres dans un autre (apres.txt)

ce qui donnerai

avant.txt
4072346
4072356
4072365
4072369
4072377
4072367
4072385
4072388
4072389
4072392
4072396

apres.txt
20110717165125.avi
20110717190556.avi
20110717211436.avi
20110718072454.avi
20110718092944.avi
20110718093425.avi
20110718112906.avi
20110718120748.avi
20110718121618.avi
20110718135844.avi
20110718142212.avi

Quelle commande utiliser awk ou sed ?
Pouvez-vous me donner une structure afin que je puisse mieux comprendre car je me perd dans des explications trouvées sur la toile.
D'avance merci pour votre attention et votre aide.

Poste le Thursday 11 August 2011 10:48:21
Répondre     Citer    
Re: manipuler des chaines de caractère
Envoyé par: NBaH

Bonjour,

awk et sed sont des commandes, que l'on peut utiliser dans tous les interpréteurs de commandes.

Le traitement que tu souhaites effectuer peut être facilement réaliser avec awk.
awk sera plus rapide sur des gros fichiers.

BASH peut le faire tout seul:
while IFS='_' read col1 col2
do echo "$col1" >>avant.txt
   echo "$col2" >>aprEs.txt
done < original.txt
--
man -P'less -p"^ *IFS"' bash

Poste le Thursday 11 August 2011 16:29:41
Répondre     Citer    
Re: manipuler des chaines de caractère
Envoyé par: edouard_31

Tout simplement un grand merci smiling smiley


NBaH a écrit:
-------------------------------------------------------
> Bonjour,
>
> awk et sed sont des commandes, que l'on peut
> utiliser dans tous les interpréteurs de
> commandes.
>
> Le traitement que tu souhaites effectuer peut
> être facilement réaliser avec awk.
> awk sera plus rapide sur des gros fichiers.
>
> BASH peut le faire tout seul:while IFS='_' read
> col1 col2
> do echo "$col1" >>avant.txt
> echo "$col2" >>aprEs.txt
> done < original.txt--
> man -P'less -p"^ *IFS"' bash

Poste le Thursday 11 August 2011 16:34:48
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
manipuler des chaines de caractère
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons