Votre aide pour un script shell

fab -  
 fab -
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 ?
Configuration: Windows XP
Internet Explorer 6.0

6 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
  2. fab
     
    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
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Re-

    Essaie un truc du genre :
    for fich in adh_*
    do
    var=`sed -n 1p $fich`
    sed -i '1d;s/.*/'$var'&/' $fich
    done
    ;-))
    0
  4. fab
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
  7. fab
     
    merci ! t mon dieu du shell ! ;-)
    à la prochaine ;-)
    0