Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/02/2011, 14h59   #1
Nouveau Membre du Club
 
Inscription : janvier 2011
Messages : 130
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 130
Points : 29
Points : 29
Par défaut premiers pas avec commande sed

Bonjour à tous,

je commence à faire des scripts basic avec la commence sed:

Tout d'abord cette commande est assez complexe je trouve, auriez-vous des conseils pour apprendre cette commande pas à pas sachant que je bosse déja sur les man sed en français?

- Voici mon fichier toto.txt

Je voudrais enlever tous les retours chariots pour au final avoir : toto titi tata

J'ai trouvé :
Code :
sed -e 'N;s/\n/ /' toto.txt
mais avec cette commande j'ai juste :
Merci
ghostrider95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2011, 15h32   #2
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 146
Points : 4 146
Bonjour,

utilise une boucle inconditionnelle b :
Code :
1
2
sed -e ':mark;N;s/\n/ /;bmark'  toto.txt
toto tata titi
mark peut être n'importe quoi.

voir : http://sed.sourceforge.net/grabbag/tutorials/
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2011, 15h55   #3
Nouveau Membre du Club
 
Inscription : janvier 2011
Messages : 130
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 130
Points : 29
Points : 29
Merci ça marche

y'a t-il une commande plus simple pour effctuer des modifications du même genre? cut par exemple?

plus simple je précise^^, avec des exemple svp
ghostrider95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2011, 16h39   #4
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 146
Points : 4 146
plus simple ?
Code :
1
2
monPrompt$ tr '\n' ' ' toto.txt
toto tata titi monPrompt$
remplace tous les retours à la ligne (même le dernier) par un espace.

sinon en bash
Code :
1
2
3
4
monPrompt$ while read line; do arr+=( "$line" ); done < toto.txt
monPrompt$ echo "${arr[@]}"
toto tata titi
monPrompt$
ou
Code bash>=4 :
1
2
3
4
monPrompt$ mapfile -t arr <toto.txt
monPrompt$ echo "${arr[@]}"
toto tata titi
monPrompt$
...
?
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2011, 17h44   #5
Nouveau Membre du Club
 
Inscription : janvier 2011
Messages : 130
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 130
Points : 29
Points : 29
Merci!

j'aurais surement besoin d'aide car je suis sur un big projet
ghostrider95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h44.


 
 
 
 
Partenaires

Hébergement Web