Saisie

Résolu
Bonjour,

Pouvez vous m'aider:

A partie d'un script shell, je veux ecrire dans l'entete de mon fichier fich
un nombre entier n saisi au clavier.

voici le script qui ecrie l'entete de mon fichier fich
awk -v h=" HD NNN $(DATE '+%Y%j') " 'BEGIN{print h}{print}END{print " NNN000000000" NR } ' AP_BA>fich

je veux un autre script qui me permet de saisir un nombre n [001... 999] dans fichier fich
n prend la place NNN

Merci d'avance.

13 réponses

  1. je veux que vous m'aidiez a faire un script shell qui me demande de saisir un nombre entier n [001... 999]
    une fois la saisie faite, ce nombre n sera ecrie dans un fichier fich.
    1. Modérateur
      Salut,

      Montres-nous ce que tu as fait, on t'aidera à améliorer le tout ;-))
      1. voici le script qui ecrie l'entete de mon fichier fich
        awk -v h=" HD NNN $(DATE '+%Y%j') " 'BEGIN{print h}{print}END{print " NNN000000000" NR } ' AP_BA>fich

        je veux un autre script qui me permet de saisir un nombre n [001... 999] dans fichier fich
        1. Modérateur
          De la même façon que tu as fait pour la date (-v h=" HD NNN $(DATE '+%Y%j') "), il te suffit de récupérer soit le paramètre passé au script ($1) soit via la commande "read" (voir man bash) demander la saisie d'un chiffre et récupérer la variable dans ta syntaxe "awk"...
          1. merci,
            Mais une partie du probleme est resolut, car le premiere $n et le second reste inchanger.

            ECHO " SAISIR LA SEQUENCE DU FICHIER AP BATCH "
            read n
            awk -v h=" HD $n$(DATE '+%Y%j') " 'BEGIN{print h}{print}END{print " $n000000000" NR } ' AP_BA>fich

            Pouvez vous m'aiser pourque le seconde $n prend la meme valeur?
            1. Modérateur
              awk -v h=" HD $n$(DATE '+%Y%j')" -v n="$n" 'BEGIN{print h}{print}END{print " n000000000" NR } ' AP_BA>fich 
              1. Modérateur
                Et comme ça ?
                awk -v n="$n" -v h=" HD $(DATE '+%Y%j')"  'BEGIN{print nh}{print}END{print " n000000000" NR } ' AP_BA>fich 
                1. Modérateur
                  Et comme ça ?

                  awk -v n="$n" -v h=" HD $(date '+%Y%j')"  'BEGIN{print n h}{print}END{print  n "000000000" NR } '