Que fait ce script ??

loulou -  
 loulou -
Bonjour, quelqu'un pourra-t-il m'expliquer ce que fait ce script ?

#!/bin/sh
awk 'BEGIN { FS=":"
OFS=":" }
NR>1 && NR<18 {print $0}
NR>17 && NR<875 {print $1,"A",$3,$4,"",$6,$7}
NR>874 {print $1,"#",$2,$3,$4,$5,$6,$7}'

Merci !

2 réponses

  1. crabs Messages postés 909 Statut Membre 507
     
    Salut,
    AWK est un parseur ligne par ligne qui permet (entre autre) :
    - de découper la ligne en champs grace à un/des séparateur(s)
    - suivant certaines conditions d'exécuter des actions

    Dans un script awk
    FS : input Field Separateur : séparateur des champs composant la ligne lors de la lecture
    OFS : Ouput Field Séparateur : idem lors de l'écriture (lors de print par exemple)
    NR: number of record : numéro de la ligne lue (ou encours)
    $0 => ligne encours entiere
    $1 => le champ 1 de la ligne encours
    $(n) => le champ n de la ligne encours
    BEGIN => action a exécuter avant de commencer à lire l'entrée standard
    print : ecrit sur la sortie standard, la , sert de séparateur de champ.
    A toi de déduire le reste, au pire tu peux essayer 'man awk'. Ce script semble
    adapter à un fichier particulier en entrée pour en créer un autre en modifiant
    certaines lignes en fonction de leur numéro.

    A+, crabs
    0
  2. loulou
     
    Merci beaucoup pour ton aide, c'est déjà plus clair !
    @+
    0