Gamit ang vi upang palitan ang isang string sa maramihang mga file

Minsan baka gusto mong palitan ang Napatungang ng isang string sa maramihang mga file.

Mayroong isang madaling paraan upang gawin ito sa tulong ng editor vi.

Halimbawa na ito ay ilarawan ang kapangyarihan ng vi:

Ipagpalagay na mayroon kang 100. Html file, at nais mong palitan ang paglitaw ng string '2007 'sa '2008'.

Dahil dito, execute ang sumusunod sa iyong prompt:

vi *. html

Ito ay magbubukas ng lahat ng mga file na nagtatapos sa. Html 'sa iyong kasalukuyang nagtatrabaho direktoryo. Pagkatapos ay ang isyu sumusunod na command:

: Argdo% s/2007/2008/g | wq

Iyan na ito! sa itaas na command ay loop sa bawat file, pinapalitan (%) ang salita 2007 sa word 2008 globally (g) at pagkatapos ito ay i-save ang bawat file (w) at lumabas mula dito (q).

Tandaan na ang string upang mahanap at ang string na gamitin para sa kapalit na pinalitan ng mga regular na expression. Halimbawa, ang isang kareta (^) ay tumutukoy sa simula ng isang line, ang dollar sign ($) ay tumutukoy sa pagtatapos nito, atbp Kaya kung tayo ay upang palitan ang anumang linya na nagsisimula sa 'sample' at nagtatapos sa 'test', isa maaaring gamitin:

: Argdo% s / ^ sample .* pagsubok $ / g | wc

kung saan .* tumutugma sa anumang bagay sa pagitan ng dalawang string.

Tandaan masyadong na maaari mong gawin ang hanapin at palitan ang pagkilos nang walang tungkol sa kaso (ibig sabihin ang isang paghahanap para sa 'salita' ay tutugma sa 'salitang'). Para sa na mahalaga, kailangan lang palitan ang '/ g' sa '/ sundalo'

4 mga Komento

mayk ika-23 ng Agosto, 2008 sa 12:24 PM

ito kareta, hindi karot!

admin Agosto 29, 2008 03:43 AM

Dapat ay-iisip tungkol sa pagkain kapag-type ito :)
Cheers

Jens Hulyo 16, 2010 at 08:35 PM

Salamat para sa hint, save ka sa akin ang grupo ng trabaho na may na.

Sa inyo Setyembre 27, 2010 sa 01:49 PM

Thanx maraming, nakatulong ito sa akin masyadong.

Mayroon akong komento, para sa relatibong maliit na bilang ng replacements, pagdikta para sa palitan Maaari ring maging kapaki-pakinabang.

: / SEARCH_STRING argdo% s / replace_string / gc | wq

sa isang karagdagang 'c' para sa 'pagkumpirma'

Salamat muli :)

Mag-iwan ng komento

Ang iyong puna