Je veux remplacer une chaîne par un caractère générique mais cela ne fonctionne pas.
La chaîne ressemble à "some-string-8"
J'ai écrit
sed -i 's/string-*/string-0/g' file.txt
mais la sortie est
some-string-08
L'astérisque (*) signifie "zéro ou plus de l'élément précédent".
Si vous souhaitez faire correspondre n'importe quel caractère
sed -i 's/string-./string-0/g' file.txt
Si vous voulez faire correspondre n'importe quelle chaîne (c'est-à-dire n'importe quel caractère zéro ou plusieurs fois), utilisez
sed -i 's/string-.*/string-0/g' file.txt
Ainsi, le concept de "caractère générique" dans les expressions régulières fonctionne un peu différemment. Pour faire correspondre "n'importe quel caractère", vous utiliseriez "." Le modificateur "*" signifie, correspond à n'importe quel nombre de fois.