Etsi & Korvaa teksti useissa asiakirjoissa komentoriviltä

Anonim

Jos olet tyytyväinen komentorivin käyttöön ja olet aina tilanteessa, jossa sinun on löydettävä ja korvattava sana, lause, URL-osoite tai merkki useiden tekstiasiakirjojen ryhmästä, perl tekee työn melko hyvin. Yksinkertainen komentomerkkijono suorittaa erittäin nopeasti ryhmäerähaun ja -korvauksen tekstille, joko yhdessä asiakirjassa tai useiden asiakirjojen ryhmässä.

Kuten monet asiat komentorivillä, vahvistusprosessia ei ole, joten sinun kannattaa varmistaa, että syntaksi on asetettu oikein ennen komennon aloittamista, muuten saatat joutua tekemään toisen etsi ja korvaa korjata kirjoitusvirheesi.

Komennon perussyntaksi on seuraava: perl -pi -w -e 's/THIS/THAT/g;' /polku/tiedostoihin.txt

yksisanainen esimerkki, jos sinun on korvattava kaikki sanan "ogre" esiintymät sanalla "cornbread" jokaisessa .txt-tiedostossa "Dokumentit"-kansiossa, käytä seuraavaa komentoa:

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

esimerkiksi kokonaisen lauseen löytämisestä ja korvaamisesta, oletetaan, että korvaamme koko lauseen "Suklaatehdas " ja "The Wizard of Oz" .txt-tiedostojen ryhmässä, joka alkaa sanalla "Films", joka on tallennettu Documents-hakemistoon:

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

Etsi ja korvaa heti. Voit tarkistaa muutoksen uudelleen käyttämällä cat- ja grep-komentoa tarkistaaksesi:

"

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

Tämä on tosin melko edistynyt, ja kyllä, erähaku ja korvaaminen useiden asiakirjojen avulla voidaan tehdä käyttäjäystävällisemmällä tavalla graafisilla sovelluksilla, kuten TextWrangler ja BBEdit, mutta joskus komentorivi on vain nopeampi tämänk altaisia ​​ja muita samank altaisia ​​nopeita tehtäviä varten, eikä sen käyttö vaadi lisälatauksia.

Suuret peukut Lifehackerille erinomaisesta tempusta.

Päivitä: "sed"-komento on toinen tapa tehdä pikahaku ja -korvaus komentorivin kautta. Sed:n kattaminen on enimmäkseen toisen artikkelin aihe, mutta sed:n perussyntaksi tähän tehtävään on hieman yksinkertaisempi ja siten helpompi muistaa:

sed -i 's/THIS/THAT/g' /polku/tiedostot.txt

Ei ole olemassa oikeaa tai väärää tapaa, joten perl- tai sed-koodin käyttö riippuu henkilökohtaisista mieltymyksistä.

Etsi & Korvaa teksti useissa asiakirjoissa komentoriviltä