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 !
A voir également:

2 réponses

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
loulou
 
Merci beaucoup pour ton aide, c'est déjà plus clair !
@+
0