Trier avec awk
Stagiaire.GSI
-
nico -
nico -
Bonjour à tous.
Je dispose du fichier suivant :
GenuineIntel-0
GenuineIntel-1
GenuineIntel-2
700.107-0
700.107-1
700.107-2
2048 KB-0
2048 KB-1
2048 KB-2
1386.08-0
1399.19-1
1399.19-2
Je veux obtenir ça :
XYZ GenuineIntel-0
XYZ 700.107-0
XYZ 2048 KB-0
XYZ 1386.08-0
XYZ GenuineIntel-1
XYZ 700.107-1
XYZ 2048 KB-1
XYZ 1399.19-1
XYZ GenuineIntel-2
XYZ 700.107-2
XYZ 2048 KB-2
XYZ 1399.19-2
X, Y, Z sont des valeurs égales ou supérieures à 100
Je pense qu'awk est indiqué pour ce traitement, voici ce que j'ai fait :
awk '
BEGIN {
nb_crit=5 # nombre de criteres, actuellement 5
nb_proc=6 # nombre de processeurs
x=100 # processeur
y=100 # indice
z=100 # type de materiel
}
{ for( i = 1; i <= nb_crit; i++)
{
for( j = 1; j <= nb_proc; j++)
{
printf( "%s%s%s $0\n",x,y+j,z+i )
}
}
}
' < $tmp >> $reel
Je veux donc réordonner le fichier tmp, mettre une valeur devant chaque ligne puis tout coller dans le fichier reel
... et le nombre de lignes dans reel est égal au carré des lignes dans tmp :-(
pouvez-vous m'aider ?
Je dispose du fichier suivant :
GenuineIntel-0
GenuineIntel-1
GenuineIntel-2
700.107-0
700.107-1
700.107-2
2048 KB-0
2048 KB-1
2048 KB-2
1386.08-0
1399.19-1
1399.19-2
Je veux obtenir ça :
XYZ GenuineIntel-0
XYZ 700.107-0
XYZ 2048 KB-0
XYZ 1386.08-0
XYZ GenuineIntel-1
XYZ 700.107-1
XYZ 2048 KB-1
XYZ 1399.19-1
XYZ GenuineIntel-2
XYZ 700.107-2
XYZ 2048 KB-2
XYZ 1399.19-2
X, Y, Z sont des valeurs égales ou supérieures à 100
Je pense qu'awk est indiqué pour ce traitement, voici ce que j'ai fait :
awk '
BEGIN {
nb_crit=5 # nombre de criteres, actuellement 5
nb_proc=6 # nombre de processeurs
x=100 # processeur
y=100 # indice
z=100 # type de materiel
}
{ for( i = 1; i <= nb_crit; i++)
{
for( j = 1; j <= nb_proc; j++)
{
printf( "%s%s%s $0\n",x,y+j,z+i )
}
}
}
' < $tmp >> $reel
Je veux donc réordonner le fichier tmp, mettre une valeur devant chaque ligne puis tout coller dans le fichier reel
... et le nombre de lignes dans reel est égal au carré des lignes dans tmp :-(
pouvez-vous m'aider ?
3 réponses
Bonjour,
Je verrais plutôt une solution effectuant un stockage en séquence dans un tableau, puis édition avec ajout des clés XYZ programmée dans le bloc END.
Je verrais plutôt une solution effectuant un stockage en séquence dans un tableau, puis édition avec ajout des clés XYZ programmée dans le bloc END.
merci de bien vouloir m'aider.
Lorsque Awk rencontre un champ qui contient des caractères non interprétables,il considère qu'il a atteint la fin de ligne et passe à la ligne suivante.
je perds donc tous les champs situés après celui qui contient les car bizarres.
comment faire pour dire à awk de continuer à lirela ligne?
merci
Lorsque Awk rencontre un champ qui contient des caractères non interprétables,il considère qu'il a atteint la fin de ligne et passe à la ligne suivante.
je perds donc tous les champs situés après celui qui contient les car bizarres.
comment faire pour dire à awk de continuer à lirela ligne?
merci