Paano makahanap at mapapalitan ang teksto sa maraming mga file mula sa terminal

Hanapin at Palitan teksto ay maaaring maging isang simpleng gawain gamit ang mga editor ng teksto mas basic. Ngunit ano ang mangyayari kapag kailangan mong gawin ang parehong gawain sa maraming mga file nang sabay?

Kaya, ang mga bagay ay nagiging kumplikado doon ... o hindi gaanong gaanong.


Sa sumusunod na halimbawa, gagamitin namin ang sed upang mapalitan ang lahat ng mga paglitaw ng salitang "mongo" ng salitang "aurelio" sa lahat ng mga file na may extension .txt sa / home / user / myfolder / folder.

hanapin / tahanan / gumagamit / myfolder / -name * .txt -exec sed -i "s / mongo / aurelio / g" {} \;

Ganon kadali…

Bago matapos, sulit na banggitin na pinapayagan ng ilang mga editor ng teksto ang operasyong ito na maisagawa gamit ang isang graphic na interface. Bukod sa iba pa, sulit na i-highlight ang Jedit, Geany, Regexxer, atbp.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   TSH dijo

    super

  2.   May pag-aalinlangan dijo

    Gumagamit ako ng Gedit

    1.    si mrlon dijo

      gedit para sa maraming mga file ??? bilang ???

  3.   Ron dijo

    Paano ko mailalagay ang isang grep sa pagitan ng ai?

    Ang kailangan ko ay gawin ang sumusunod, maghanap sa loob ng bahay para sa lahat ng mga file na tinatawag na index.html at naglalaman ng salitang "XXXXXXX", at palitan ito ng "YYYYYYYYYY", dahil magagawa ito upang maghanap lamang ito sa ang mga file na talagang may string?

    Maraming salamat !

  4.   MelhorHospedagem dijo

    Gumagamit din ako ng Gedit, ngunit maraming salamat

  5.   Angel garcia dijo

    Nawawala ang argumento para sa exec. Ang tamang code ay:
    hanapin / tahanan / gumagamit / myfolder / -name * .txt -exec sed -i "s / mongo / aurelio / g" {} \;

    Pagbati

    1.    gumamit tayo ng linux dijo

      Tama ka! Salamat!
      Naitama ko na. : =)

  6.   gardo dijo

    Sinubukan ko lang ito (bilang ROOT):

    hanapin / usr / magbahagi / mga icon / ACYL-Allgray / -name * .svg -exec sed -i "s / 666666/000000 / g" {} \;

    upang baguhin ang kulay ng isang buong hanay ng mga icon. Ang totoo ay ito ay isang napakalakas na utos, karaniwang ang gawaing ito ay magdadala sa akin ng maraming oras sa pag-edit ng file sa pamamagitan ng file.

  7.   Edmundo dijo

    Ipasok ang teksto sa maraming mga file, ayon sa numero ng linya, sa aking kaso na linya 2 (2i), sa centos linux

    find / home // public_html / res / -name -exec sed -i "2i \;" {} \;

    1.    Edmundo dijo

      hindi lahat ng code ay lumabas kaya't muling isinumite ko:

      find / home / user / public_html / res / -name filename.ext -exec sed -i "2i \ text upang ipasok ang" {} \;