Maghanap ng & Palitan ang Teksto sa Maramihang Mga Dokumento mula sa Command Line

Anonim

Kung komportable ka sa command line at kailanman nasa sitwasyon kung saan kailangan mong maghanap at palitan ang isang salita, parirala, URL, o karakter sa isang pangkat ng maraming text na dokumento, ginagawa ng perl ang trabaho nang maayos. Ang isang simpleng command string ay napakabilis na magsasagawa ng pangkat na paghahanap at pagpapalit sa text, maging sa isang dokumento o sumasaklaw sa isang pangkat ng maraming mga dokumento.

Tulad ng maraming bagay sa command line, walang proseso ng pagkumpirma, kaya gugustuhin mong tiyaking nakatakda nang tama ang iyong syntax bago simulan ang isang command, kung hindi, maaaring kailanganin mong gumawa ng isa pang paghahanap at pagpapalit para ayusin ang typo mo.

Ang pangunahing command syntax ay ang mga sumusunod: perl -pi -w -e 's/THIS/THAT/g;' /path/to/files.txt

Para sa isang halimbawa ng salita, kung kailangan mong palitan ang lahat ng pagkakataon ng “ogre” ng “cornbread” sa bawat .txt file sa loob ng folder na "Mga Dokumento", pagkatapos ay gagamitin mo ang sumusunod na command:

perl -pi -w -e 's/ogre/cornbread/g;' ~/Documents/.txt

Para sa isang halimbawa ng paghahanap at pagpapalit ng buong parirala, ipagpalagay natin na papalitan natin ang buong pangungusap na “The Chocolate Factory ” kasama ang “The Wizard of Oz” sa isang pangkat ng mga .txt na file na nagsisimula sa “Mga Pelikula” na nakaimbak sa direktoryo ng Mga Dokumento:

perl -pi -w -e 's/The Chocolate Factory/The Wizard of Oz/g;' ~/Documents/Films.txt

Ang paghahanap at pagpapalit ay tapos na kaagad. Maaari mong i-double check ang pagbabago sa pamamagitan ng paggamit ng cat at grep para suriin ang:

"

cat ~/Documents/Films124.txt |grep Wizard of Oz"

Tanggapin, ito ay medyo advanced, at oo, ang paghahanap at pagpapalit ng batch sa pamamagitan ng maraming mga dokumento ay maaaring gawin sa isang mas user friendly na paraan sa pamamagitan ng mga GUI app tulad ng TextWrangler at BBEdit, ngunit kung minsan ang command line ay mas mabilis lang para sa mga mabilisang gawain tulad nito at iba pang katulad nito, at hindi ito nangangailangan ng anumang karagdagang pag-download upang magamit.

Isang malaking thumbs up sa Lifehacker para sa mahusay na trick.

Update: Ang command na 'sed' ay isa pang paraan ng mabilisang paghahanap at pagpapalit sa pamamagitan ng command line. Ang pagsakop sa sed ay kadalasang isang paksa para sa isa pang artikulo, ngunit ang pangunahing syntax ng paggamit ng sed para sa gawaing ito ay medyo mas simple at sa gayon ay mas madaling matandaan:

sed -i 's/THIS/THAT/g' /path/to/files.txt

Walang tama o maling paraan, kaya kung gagamit ka ng perl o sed ay personal na kagustuhan.

Maghanap ng & Palitan ang Teksto sa Maramihang Mga Dokumento mula sa Command Line