Votre aide pour un script shell

Fermé
fab - 2 janv. 2007 à 17:38
 fab - 5 janv. 2007 à 15:27
alalah que c dur de se remettre au script shell après pls années de non pratique ;-)

voilà en gros j'ai un script qui marche bien pour 1 fichier passé en paramètre et maintenant je voudrai qu'il marche pour plusieurs fichiers à la fois !
mon script pour 1 fichier:

var=`sed -n 1p $1` && sed -i '1d;s/.*/'$var'&/' $1

il recopie la 1ère ligne de mon fichier devant chaque ligne; c'est ok.
maintenant je voudrais qu'il fasse la même chose pour tous les fichiers qui commence par $1
j'ai essayé:

var=`sed -n 1p $1*` && sed -i '1d;s/.*/'$var'&/' $1*

mais ça marche pô !? je me doute qu'il y a un pb avec la variable mais... !?
vous avez une idée svp ?
A voir également:

6 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896
2 janv. 2007 à 21:11
Salut,

pour tous les fichiers qui commence par $1
$1 est un paramètre (le premier).
Si tu veux désigner tous les paramètres il faut employer "$*" (ou $@).

Mais même avec ça je doute que ton script marche :-(

Affiche-nous plutôt la liste des fichiers (ls le_rep_où_sont_les_fichiers) que tu voudrais passer en paramètres.
0
salut jipicy,

ben en fait dans mon répertoire j'ai pls fichiers: adh_cic, adh_adf, adh_imp, etc... tous commencent par adh...
et je voudrais que mon script fasse pour chacun d'eux (sans que j'ai tous à les rentrer en paramètre, juste 'adh' ) l'opération de prendre la 1ère ligne pour la mettre devant chaque ligne.
merci de ton aide,
A+
fab
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896
4 janv. 2007 à 07:43
Re-

Essaie un truc du genre :
for fich in adh_*
do
var=`sed -n 1p $fich`
sed -i '1d;s/.*/'$var'&/' $fich
done
;-))
0
OK thanks a lot !
et si je peux te demander un truc encore: comment faire pour que ça soit plus "générique", dans le sens ou je voudrais que ça marche pour tous les fichiers qui commence par adh_* mais aussi pour tous les fichiers pres_* ou tous les fichiers cot_*, genre je donne adh ou pres ou cot en paramètre de mon script ....
tu vois ? ;-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896
5 janv. 2007 à 12:25
Re-

En supposant que tu ne passes qu'un seul paramètre à ton script :
for fich in $1*
do
var=`sed -n 1p $fich`
sed -i '1d;s/.*/'$var'&/' $fich
done
;-)
0
merci ! t mon dieu du shell ! ;-)
à la prochaine ;-)
0