[Unix korn shell] Convertir une liste
Résolu
Karamurat
Messages postés
45
Statut
Membre
-
Karamurat Messages postés 45 Statut Membre -
Karamurat Messages postés 45 Statut Membre -
bonjour
j'ai besoin de votre aide pour convertir cette liste (fichier d'entrer ) :
INPUT
Input file comp.txt
lawsonlevel: NO
lawsoncompanyI: 2028
lawsoncompanyI: 2030
lawsoncompanyF: 2079
lawsoncompanyF: 2100
lawsoncompanyF: 2161
lawsoncompanyF: 2237
lawsoncompanyF: 2307
lawsoncompanyF: 2334
lawsoncompanyF: 2340
lawsoncompanyF: 2368
lawsoncompanyF: 2369
lawsoncompanyF: 3526
lawsoncompanyF: 4000
lawsoncompanyF: 4001
lawsoncompanyF: 4002
lawsoncompanyF: 4003
lawsoncompanyF: 4008
lawsoncompanyF: 4009
lawsoncompanyF: 4010
lawsoncompanyF: 4011
lawsoncompanyF: 4012
lawsoncompanyF: 4016
lawsoncompanyF: 4056
avec les parametres d'entrer :
ROLE=TAXMNG
DB=LOP1
MODULE=AP
LEVEL=NO
fussionner le tout pour pouvoir avoir un fichier de sortie de cette nature la :
avec la description des colonnes :
${ROLE}-${LEVEL} ${DB} ${MODULE} =99 Comp Comp fixed fixed =1 if Full
pour pouvoir avoir ça :
"TAXMNG-NO","LOP1","AP",99,2028,2028," !","~~~~~~~~~~~~~~~",1
"TAXMNG-NO","LOP1","AP",99,2030,2030," !","~~~~~~~~~~~~~~~",
"TAXMNG-NO","LOP1","AP",99,2079,2079," !","~~~~~~~~~~~~~~~",1
le tout avec la commande awk si possible ,
Merci encore a tous !
j'ai besoin de votre aide pour convertir cette liste (fichier d'entrer ) :
INPUT
Input file comp.txt
lawsonlevel: NO
lawsoncompanyI: 2028
lawsoncompanyI: 2030
lawsoncompanyF: 2079
lawsoncompanyF: 2100
lawsoncompanyF: 2161
lawsoncompanyF: 2237
lawsoncompanyF: 2307
lawsoncompanyF: 2334
lawsoncompanyF: 2340
lawsoncompanyF: 2368
lawsoncompanyF: 2369
lawsoncompanyF: 3526
lawsoncompanyF: 4000
lawsoncompanyF: 4001
lawsoncompanyF: 4002
lawsoncompanyF: 4003
lawsoncompanyF: 4008
lawsoncompanyF: 4009
lawsoncompanyF: 4010
lawsoncompanyF: 4011
lawsoncompanyF: 4012
lawsoncompanyF: 4016
lawsoncompanyF: 4056
avec les parametres d'entrer :
ROLE=TAXMNG
DB=LOP1
MODULE=AP
LEVEL=NO
fussionner le tout pour pouvoir avoir un fichier de sortie de cette nature la :
avec la description des colonnes :
${ROLE}-${LEVEL} ${DB} ${MODULE} =99 Comp Comp fixed fixed =1 if Full
pour pouvoir avoir ça :
"TAXMNG-NO","LOP1","AP",99,2028,2028," !","~~~~~~~~~~~~~~~",1
"TAXMNG-NO","LOP1","AP",99,2030,2030," !","~~~~~~~~~~~~~~~",
"TAXMNG-NO","LOP1","AP",99,2079,2079," !","~~~~~~~~~~~~~~~",1
le tout avec la commande awk si possible ,
Merci encore a tous !
A voir également:
- [Unix korn shell] Convertir une liste
- Liste déroulante excel - Guide
- Classic shell - Télécharger - Personnalisation
- Liste code ascii - Guide
- Liste déroulante en cascade - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
21 réponses
apres plusieurs essai , j'ai réussi a trouver le commande qui a permit la résolution grace a" match" de "awk" ! ouf !
faite moi signe il peut y avoir simplification ;)
MODULE_LIST="AM AP AR BL"
for MODULE in $MODULE_LIST
do
awk -F " " '
BEGIN{comp=0}
/^law.*I/ {full="" } # Inquiry access
/^law.*F/ {full="1"} # Full access
/^lawson.*: [0-9][0-9]*$/{
x=++comp - 1
if(x) s=sprintf("%d",x)
else s=""
printf("\"%s-%s\",\"%s\",\"%s\",%s,%s,%s,\" !\",\"~~~~~~~~~~~~~~~\",%s\n",
ROLE, LEVEL, DB, MODULE, s, $2, $2, full)}
/^lawson.*: [0-9][0-9]*-[0-9][0-9]*$/{
x=++comp - 1
if(x) s=sprintf("%d",x)
else s=""
printf("\"%s-%s\",\"%s\",\"%s\",%s,%s,%s,\" !\",\"~~~~~~~~~~~~~~~\",%s\n",
ROLE, LEVEL, DB, MODULE, s,substr($2,1,match($2,"-")-1), substr($2,match($2,"-")+1,4), full)}
' ROLE=TAXMNG LEVEL=NO DB=LOP1 MODULE=$MODULE < comp_4.txt
done
faite moi signe il peut y avoir simplification ;)