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'

ito kareta, hindi karot!
Dapat ay-iisip tungkol sa pagkain kapag-type ito
Cheers
Salamat para sa hint, save ka sa akin ang grupo ng trabaho na may na.
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