Le kell cserélnem a “periódus csillag” összes előfordulását, ahogyan ez itt látható:
blah blah .*:.*:.* blah blah
a következővel:
[0-9][0-9]:[0-9][0-9]:[0-9][0-9]
úgy, hogy a végeredmény így nézzen ki:
blah blah [0-9][0-9]:[0-9][0-9]:[0-9][0-9] blah blah
Kipróbáltam az alábbiak különböző variációit, de nem működött:
%s_ .*:.*:.* _ [0-9][0-9]:[0-9][0-9]:[0-9][0-9] _g
Válasz
Példát adtál egy háromszor ismétlődő “pont csillaggal” sorra, kettősponttal elválasztva. Ha adataid mindig ilyenek lesznek, akkor ragaszkodhatsz a AlexP válasza . De a kérdésed azt mondja , hogy ki kell cserélned a „periódus csillag” minden előfordulását. Ha ez a a probléma pontos, használja a következőt:
:%s/\.\*/[0-9][0-9]/g
, amely akkor is megtalálja és lecseréli a „periódus csillagot”, ha nem jelenik meg háromfős csoportokban.
Válasz
Vim esetében:
A következőhöz: sed
: sed -e "s/\.\*:\.\*:\.\*/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/g"
.
-
%
azt jelenti, hogy a helyettesítést minden vonalon alkalmazni kell; nincs szükség ased
mezőben, ahol alapértelmezés szerint a parancsot minden sorra alkalmazzák. -
\.
egy periódus; a csupasz.
bármilyen karaktert jelent. -
\*
csillag; a csupasz*
az előző atom 0-át vagy többet jelent.
Válasz
A nomagic
módosító használata a Vim mintájához:
:%s/\M.*/[0-9][0-9]/g
A eltávolítja a minta .
és *
különlegességét is. :help magic
a Vim-ben.