En bash, il suffit d'exécuter set
affichera tous les paramètres de l'environnement. Je souhaite afficher mes fonctions sur une seule ligne pour chacune d'entre elles. Ainsi, au lieu d'exécuter set
et d'obtenir ceci (par exemple) :
gcm ()
{
git commit -m "$@";
git --no-pager log -1 | grep --color ^commit
}
gcma ()
{
git commit -a -m "$@";
git --no-pager log -1 | grep --color ^commit
}
Je veux voir ça :
gcm () { git commit -m "$@"; git --no-pager log -1 | grep --color ^commit }
gcma () { git commit -a -m "$@"; git --no-pager log -1 | grep --color ^commit }
Je pense donc qu'il me faut une commande sed/awk qui recherchera les expressions rationnelles suivantes ' ()$'
et concaténer toutes les lignes suivantes (avec un caractère de séparation) jusqu'à la regex '^}$'
et tout le reste devrait s'imprimer tel quel.
MISE À JOUR : Tous les exemples présentés jusqu'à présent prennent toutes les entrées et les rendent sur une seule ligne, ce qui n'est pas tout à fait correct. Je veux que chaque fonction (l'ensemble des ' ()$'
a '^}$'
inclusivement) en une seule ligne.