A. * Cseréje a vi

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 a sed 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.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük