J'ai un fichier qui contient une liste de key=value
paires, chacune sur sa propre ligne. Quel est le meilleur moyen d'extraire la valeur d'une clé spécifiée à l'aide des commandes du shell?Les commandes Shell pour faire correspondre les paires de valeurs clés
Répondre
Qu'en est-
grep "key" my_file | cut -d'=' -f2
@mouviciel, mauvais commentaire location mate? (-: –
Que faire si le fichier a une liste horizontale des paramètres key = value? – CMCDragonkai
Poster a dit "chacun sur sa propre ligne" .Mais oui, s'il y en avait plus d'un par ligne alors cela ne marcherait pas –
Voilà comment je le fais dans ksh.
FOO=$(grep "^key=" $filename | awk -F"=" '{print $2}')
Vous pouvez également utiliser une découpe à la place de l'awk. Si vous délimitez la paire de clés avec un espace, vous pouvez supprimer -F "=".
grep peut être awk peut tout faire. 'awk -F "="'/^ key =/{print $ 2} '' – ghostdog74
read -r -p "Enter key to fetch: " key
awk -vk="$key" -F"=" '$1~k{ print "value for "k" is "$2} ' file
sortie
$ ./shell.sh
Enter key to fetch: key1
value for key1 is value1
ou vous pouvez simplement utiliser le shell (par exemple bash)
read -r -p "Enter key to fetch: " key
while IFS="=" read -r k v
do
case "$k" in
*"$key"*) echo "value of key: $k is $v";;
esac
done <"file"
peut même pas avoir besoin d'une regexp:' awk ...' $ 1 == k {print $ 2} ' file ' –
dépend si OP a besoin d'une correspondance exacte Si ce n'est pas le cas, regexp est approprié OP peut implémenter un équivalent "like" SQL avec regexp – ghostdog74
La commande awk ci-dessus ne semble pas fonctionner avec Solaris. – JonnyWizz
- 1. Paires de valeurs clés dans AS3
- 2. Combiner des listes de paires de valeurs clés où les clés correspondent
- 3. La façon Groovy de faire correspondre les valeurs?
- 4. Dictionnaire ThreadSafe ... Paires de valeurs clés Enumerable? (.net)
- 5. Saisie semi-automatique à partir des paires de valeurs clés
- 6. toutes les commandes de shell-script dans les commandes de lot portable?
- 7. Regex pour faire correspondre les espaces et les apostrophes
- 8. SortedMap avec plusieurs champs pour les clés et les valeurs
- 9. Comment faire pour faire correspondre les parenthèses dans XEmacs?
- 10. comment obtenir les clés css et les valeurs pour n'importe quelle balise html
- 11. Capture de codes-clés dans un shell?
- 12. Infini "pour i, v dans les paires (tableau) faire" Boucle?
- 13. Valider les clés de hachage/valeurs
- 14. Comment faire correspondre les informations d'une chaîne
- 15. javascript regex pour faire correspondre les caractères entre deux chaînes
- 16. Meilleure implémentation pour la structure de données de paires de valeurs clés?
- 17. script shell/batch pour diriger les commandes vers le shell ADB
- 18. convertir les paires de valeurs de nom en xml
- 19. TSQL, en comptant les paires de valeurs dans un tableau
- 20. obtenir des valeurs de la table sous forme de paires de valeurs-clés avec jquery
- 21. Expression régulière, faire correspondre les caractères entre {}
- 22. Commandes Emacs et Long Shell
- 23. motif regex pour faire correspondre les sous-modèles alternatifs
- 24. (grep) Regex pour faire correspondre les caractères non-ASCII?
- 25. Regex pour faire correspondre les fractions sloppy/nombres mélangés
- 26. MySQL Query pour faire correspondre les objets Aide
- 27. Regex pour faire correspondre un mot avec les signes + (plus)
- 28. Comment puis-je utiliser LINQ pour faire correspondre les mots?
- 29. regexp pour trouver clés paires de valeurs séparées par deux points
- 30. C# Expression régulière pour faire correspondre les lettres, les chiffres et les traits de soulignement
bourne, C, ou bash – live2dream95
J'ai fini avec ceci: grep « clé "nom de fichier | sed '/ key = //' – live2dream95