1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
awk '
BEGIN {
FS = ";"
FlagFirstKey=1
PreviousKey = ""
NewRecord = ""
}
{
#-- Record Number 1, ecr. 1ere partie du titre
if (NR == 1) {
printf("%s;%s;%s",$1,$2,$3)
next
}
if ( $1 $2 $3 == PreviousKey) {
if (FlagFirstKey == 1) {
#-- ecr. complement de titre (1ere clé traitée)
printf(";%s",$4)
}
NewRecord = NewRecord ";" $5
next
}
if (NewRecord != "") {
if (FlagFirstKey == 1) {
#-- fin de traitement de la 1ere clé
print ""
FlagFirstKey=0
}
print NewRecord
} else {
#-- ecr. complement de titre (1ere clé traitée)
printf(";%s",$4)
}
PreviousKey = $1 $2 $3
NewRecord = $1 ";" $2 ";" $3 ";" $5
}
END {
print NewRecord
} ' CRA > RES.csv |