Ich muss alle Vorkommen von „Punktstern“ ersetzen, wie hier gezeigt:
blah blah .*:.*:.* blah blah 
mit:
[0-9][0-9]:[0-9][0-9]:[0-9][0-9] 
, sodass das Endergebnis folgendermaßen aussieht:
blah blah [0-9][0-9]:[0-9][0-9]:[0-9][0-9] blah blah 
Ich habe verschiedene Varianten der folgenden ausprobiert, aber es hat nicht funktioniert:
%s_ .*:.*:.* _ [0-9][0-9]:[0-9][0-9]:[0-9][0-9] _g 
Antwort
Sie haben ein Beispiel für eine Zeile mit einem dreimal wiederholten „Sternchen“ angegeben, die durch Doppelpunkte getrennt sind. Wenn Ihre Daten immer so aussehen, können Sie sich auch an AlexPs Antwort . In Ihrer Frage heißt es jedoch , dass Sie alle Vorkommen von „Punkt-Sternchen“ ersetzen müssen. Wenn diese Anweisung von Wenn das Problem korrekt ist, sollten Sie
:%s/\.\*/[0-9][0-9]/g 
verwenden, um das „Sternchen“ zu finden und zu ersetzen, auch wenn es nicht in Dreiergruppen angezeigt wird.
Antwort
Für Vim:
 Für sed: sed -e "s/\.\*:\.\*:\.\*/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/g". 
-  
%bedeutet, dass die Ersetzung auf alle Zeilen angewendet wird. wird insednicht benötigt, wo der Befehl standardmäßig auf alle Zeilen angewendet wird. -  
\.ist ein Punkt; Ein nacktes.bedeutet ein beliebiges Zeichen. -  
\*ist ein Sternchen. Ein nacktes*bedeutet 0 oder mehr des vorhergehenden Atoms. 
Antwort
 Verwenden des Modifikators nomagic für das Muster in Vim: 
:%s/\M.*/[0-9][0-9]/g 
 Die \M entfernt die Besonderheit von . und * im Muster. 
 Siehe :help magic in Vim.