Que fait ce script ??
loulou
-
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 !
#!/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
-
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 -