L'analyse de tous les éléments d'un tableau dans GAWK renvoie des nombres plutôt que des valeurs

StackOverflow https://stackoverflow.com/questions/1015586

  •  06-07-2019
  •  | 
  •  

Question

Étant donné la fonction suivante:

function process_pipes(text)
{
    split(text,recs,"|");
    for (field in recs){
        printf ("|%s|\n", field)
    }
}

Si l'entrée est: 0987654321 | 57300 | Numéro de compte ERREUR non trouvé | GDUMARESQ | 0199 | 9 | N | 0 ||

Pourquoi ai-je les chiffres ci-dessous au lieu du texte?

|4|
|5|
|6|
|7|
|8|
|9|
|10|
|1|
|2|
|3|
Était-ce utile?

La solution

split crée un tableau recs dans votre code, et recs [1] == 0987654321, etc.,

.

La boucle pour (champ dans les enregistrements) génère la liste des index, pas les éléments du tableau.

Vous avez donc besoin de:

function process_pipes(text)
{
    split(text,recs,"|");
    for (field in recs){
        printf ("|%s|\n", recs[field])
    }
}

Autres conseils

Parce que

for ... in 

vous donne les touches . Utilisez

printf("|%s|\n",recs[field]);

pour obtenir les valeurs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top