Comment faire en sorte que sed n'imprime que l'expression correspondante?
Je souhaite réécrire des chaînes telles que "Batterie 0: charge, 44%, charge" dans "Batterie: 44%". J'ai essayé ce qui suit:
sed -n '/\([0-9]*%\)/c Battery: \1'
Ça ne marche pas.
La "solution" courante consiste à utiliser les fonctions de recherche, de remplacement et de correspondance de la ligne entière: sed -n 's/.*\([0-9]*%\).*/Battery: \1/p'
Maintenant, les. * Sont trop gourmands et le \ 1 n'est que le%.
De plus, je ne veux pas faire correspondre plus que nécessaire.