-
-
Save colinux/1270468 to your computer and use it in GitHub Desktop.
$ cat gemspec | |
WARNING: no homepage specified | |
Successfully built RubyGem | |
Name: project | |
Version: 2.7.5 | |
File: project-2.7.5.gem | |
# On veut récupérer "2.7.5" et "project-2.7.5.gem": | |
# -F": " : fixe ": " comme séparateur de champ | |
# et on ne récupère que les champs qui contiennent des nombres | |
$ cat gemspec | awk -F": " '{ if ($NF ~ /[0-9]+/) { print $NF; } }' | |
2.7.5 | |
project-2.7.5.gem | |
# On ne veut que le numéro de version pour l'assigner dans une variable: on adapte juste la regex | |
$ V=`cat gemspec | awk -F": " '{ if ($NF ~ /^[0-9\.]+$/) { print $NF; } }'` | |
$ echo $V | |
2.7.5 |
Je pense que si tu veux 2 variables (une pour chaque ligne), il faut de toute façon faire 2 appels, en adaptant juste la regex.
Et du coup quitte à faire 2 appels, on peut faire plus simple:
$ cat gemspec | awk '{ if ($0 ~ /Version/) { print $2; } }'
2.7.5
Avec les numéros de lignes ça marche aussi mais c'est ptet moins fiable sur la durée si ya un changement dans la sortie:
$ cat gemspec | awk '{ if (NR == 4) { print $2; } }'
2.7.5
$ cat gemspec | awk '{ if (NR == 5) { print $2; } }'
project-2.7.5.gem
Au passage je viens de réaliser qu'il n'y a pas besoin de changer le field separator, vu que par défaut c'est l'espace et que dans ton cas ça suffit.
Trop cool. Merci.
Yo, grace à ton aide, j'ai réussi à faire ce que je voulais, au final, ça donne ça : https://gist.github.com/1274052
cool :)
OK, mais alors comment récupérer la seconde ligne ?
Mais ça serait vachement plus simple d'avoir un moyen de choisir le num de ligne qu'on veut, puis le découpage par " " comme d'hab