SHELL Unix : parcours et concaténation

Résolu
dusanone -  
 dusanone -
Bonjour à tous,

Je débute avec le SHELL Unix et je bute sur un problème qui pourtant paraît simple. J'ai un fichier contenant des chaînes de caractères sous cette forme :

#commentaire 1
nom1 prenom1
nom2 prenom3
#commentaire2
nom3 prenom3
nom4 prenom4
...

Je souhaite parcourir ce fichier pour en afficher uniquement les 4 premiers caractères du nom et les 3 premiers caractères du prénom pour chaque personne, tout en minuscule, et d'ajouter à la fin de chaque personne "@monemail.ch".

Par exemple si le premier nom est Dubois et le premier prénom est Marc je voudrais avoir en sortie : dubomar@monemail.ch

.. et ceci pour tous les fichiers, tout en omettant les commentaires.

J'ai fait des tests en mixant sed et grep mais j'y arrive vraiment pas, tout aide sera donc fortement appréciée.

Merci d'avance pour vos indications !
A voir également:

3 réponses

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,

Un exemple parmi tant d'autres, avec "sed" :

[tmpfs]$ cat plop
#commentaire 1
nom1 prenom1
nom2 prenom3
#commentaire2
nom3 prenom3
nom4 prenom4

[tmpfs]$ sed -n '/^#/!{s/\(....\) \(...\).*/\1\2@monemail.ch/p}' plop
nom1pre@monemail.ch
nom2pre@monemail.ch
nom3pre@monemail.ch
nom4pre@monemail.ch

[tmpfs]$

;-))
1
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Un autre exemple en bash :

jp@MDK:~/tmpfs ssh$ cat foo.sh
#! /bin/sh

#set -xv

sed '/^#/d' plop | while read nom prenom
do
echo "${nom: :4}${prenom: :3}@monemail.ch"
done

jp@MDK:~/tmpfs ssh$ ./foo.sh
nom1pre@monemail.ch
nom2pre@monemail.ch
nom3pre@monemail.ch
nom4pre@monemail.ch

jp@MDK:~/tmpfs ssh$

:-))
0
dusanone
 
Quand j'ai dit : "et ceci pour tous les fichiers" je voulais dire pour chaque combinaison nom/prénom.
0
dusanone
 
Salut jipicy,

Un grand merci à toi pour cette réponse rapide !

Vraiment excellent et en fait c'est assez simple fallait juste que je bosse plus sed :x

Merci encore !
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
De rien ;-))

PS. Qu'est-ce qu'il fait encore debout à cette heure-ci le Québécois? ;-))
0
dusanone
 
Il révise son examen de demain et tu viens de me sauver pour la dernière question de mon devoir ;)

Puis suis Suisse mais vis au Québec ouais :p

Merci encore j'ai vu que tu répondais souvent ici et tes réponses sont tjrs excellentes et m'ont déjà bcp apportées !
0
dusanone
 
Btw en utilisant la deuxième soluce il n'omet pas les lignes de commentaire, mais ça va se gérer en 2 sec c'est un détail.
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Bon courage et bonne chance alors ;-)

PS. Dors un peu quand même ;-)
0
dusanone
 
J'imprime et go dodo la :D
0