0
votes

Comment créer un dictionnaire d'un fichier texte à bash?

Je souhaite créer un dictionnaire à Bash à partir d'un fichier texte qui ressemble à ceci: xxx

essentiellement je veux un dictionnaire comme ceci à partir de ce fichier fichier.txt : xxx

j'ai créé le script suivant: xxx

Cependant, cela n'imprime pas a , plutôt il imprime d . Pouvez-vous s'il vous plaît aider?


3 commentaires

Étroitement lié: Stackoverflow.com/questions/38964946/...


Ne créez pas de sous-vase supplémentaire pour chaque appel à Cut Utilisez simplement Paramètre Extransions Key = "$ {line%% | *}" et < code> data = "$ {ligne # * |}" ou juste dictionnaire [$ {(ligne%% | *}] = $ {line # * |} (après avoir réparer le < Code> -A à -A problème)


Il y a plus d'une remarque sur ce post! Veuillez considérer Réponse de Smart Oguz Ismail


3 Réponses :


0
votes

Ce que vous voulez faire est un tableau associatif tellement nommé. Et pour le déclarer, vous devez utiliser la commande:

declare -A dictionary


0 commentaires

3
votes

Les tableaux associatifs ( dictionnaires dans vos conditions) sont déclarés en utilisant -A , pas -A . Pour les références à indexées (celles déclarées avec -A ) Les éléments 'BASH effectue une expansion arithmétique sur l'indice ( $ clé H96400275 H96400275 Cas); donc vous écrivez fondamentalement l'écrasement dictionnaire [0] sur et sur, puis demandant sa valeur; Ainsi, d est imprimé.

et pour rendre ce script plus efficace, vous pouvez utiliser lire en conjonction avec un ifs personnalisé pour éviter < Code> Couper s. Par exemple: xxx


voir Manuel de référence Bash § 6.7 Tableaux .


1 commentaires

C'est un autre bon moyen d'éviter les sous-espaces associés à l'appelant couper .



3
votes

Le seul problème est que vous devez utiliser -a au lieu de -a xxx


0 commentaires