|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Inscription : avril 2006 Messages : 116 ![]() |
Bonjour,
Je me trouve confronté à un problème. J'ai un fichier à parser contenant des valeurs de type : label value (1 couple par ligne) ce fichier peut contenir 1 à x ligne. Ce que j'aimerais, c'est pouvoir, après avoir parsé le fichier, faire un echo du genre : TXT CONSTANT | label1=value .... labelx=valuex exemple : DATA | toto=28 tata=298 jean=2000 Actuellement, j'applique un traitement awk à chaque ligne et je les ajoute dans un champ d'un tableau, mais je n'arrive pas à formater une variable avec tous les champs de mon tableau en ligne. Code :
Si quelqu'un à une idée... Je ne suis pas fermé à un changement de méthode. Je vais essayer un truc qui me passe par la tête avec AWK mais rien de sur et ça risque d'être tarabiscoté ... En vous remerciant, Nelmo |
||
|
|
01
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 071 ![]() |
Bonjour,
regarde comment lire un fichier en shell faire traîter par awk chaque ligne d'un fichier lu par bash n'est pas correct ! rien que le for item in $(cat fichier) me fait perdre mes mots
|
|
|
20
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : avril 2006 Messages : 116 ![]() |
Merci, je vais aller étudier ce post
|
|
|
10
|
|
|
#4 | ||
|
Nouveau Membre du Club
![]() Inscription : avril 2006 Messages : 116 ![]() |
Code :
Malgré ce problème de =, je ne vois vraiment pas comment mettre toute les lignes de mon tableau dans une seule. La façon facile que je vois, c'est de faire un if elif avec toutes les possibilités. Le fichier devrait compter, en fonction des moments, 1 à 20 lignes maximum. Mais ça doit vraiment pas être propre |
||
|
|
10
|
|
|
#5 | ||||
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 071 ![]() |
Code :
Code BASH>=4 :
|
||||
|
|
10
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Inscription : avril 2006 Messages : 116 ![]() |
Merci pour ces propositions que je n'ai pas forcement compris
En effet, hormis le [@] dont je comprend qu'il permet d'afficher tous les éléments et donc, de tout mettre en ligne. En ce qui concerne la seconde, je n'ai pas compris mapfile et je suppose que // /= permet de remplacer les espace par le signe égal ? Ceci dit, cela semble sortir correctement en label=value |
|
|
00
|
|
|
#7 | ||
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 071 ![]() |
Citation:
Citation:
mapfile lit les lignes sur son entrée standard, et les place dans un tableau indexé. voir : help mapfile. |
||
|
|
00
|
|
|
#8 |
|
Nouveau Membre du Club
![]() Inscription : avril 2006 Messages : 116 ![]() |
Merci pour ton aide.
Cela fonctionne, le problème est résolu. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com