Je dois remplacer toutes les occurrences de « period asterisk » comme il est montré ici:
blah blah .*:.*:.* blah blah
avec:
[0-9][0-9]:[0-9][0-9]:[0-9][0-9]
pour que le résultat final ressemble à ceci:
blah blah [0-9][0-9]:[0-9][0-9]:[0-9][0-9] blah blah
Jai essayé différentes variantes de ce qui suit mais cela na pas fonctionné:
%s_ .*:.*:.* _ [0-9][0-9]:[0-9][0-9]:[0-9][0-9] _g
Réponse
Vous avez donné un exemple de ligne avec « point astérisque » répété trois fois, séparés par des deux-points. Si vos données ressembleront toujours à cela, vous pourriez aussi bien vous en tenir à Réponse dAlexP . Mais votre question dit que vous devez remplacer toutes les occurrences de « période astérisque ». Si cette déclaration de le problème est précis, vous devez utiliser
:%s/\.\*/[0-9][0-9]/g
qui trouvera et remplacera « période astérisque » même sil napparaît pas par groupe de trois.
Réponse
Pour Vim:
Pour sed: sed -e "s/\.\*:\.\*:\.\*/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/g".
-
%signifie appliquer la substitution sur toutes les lignes; nest pas nécessaire danssedoù, par défaut, la commande est appliquée à toutes les lignes. -
\.est un point; un.nu signifie nimporte quel caractère. -
\*est un astérisque; un simple*signifie 0 ou plus de latome précédent.
Réponse
Utilisation du modificateur nomagic pour le motif dans Vim:
:%s/\M.*/[0-9][0-9]/g
Le \M supprimera la particularité de . et * dans le modèle.
Voir :help magic dans Vim.