Hur man hittar och ersätter text i flera filer från terminalen

Sök och ersätt text kan vara en enkel uppgift med hjälp av textredigerare mer grundläggande. Men vad händer när du behöver göra samma uppgift i flera filer samtidigt?

Det blir komplicerat där ... eller inte så mycket.


I följande exempel använder vi sed för att ersätta alla förekomster av ordet "mongo" med ordet "aurelio" i alla filer som har tillägget .txt och som finns i / home / user / myfolder / folder.

hitta / hem / användare / minmapp / -namn * .txt -exec sed -i "s / mongo / aurelio / g" {} \;

Så lätt…

Innan du är klar är det värt att nämna att vissa textredigerare tillåter att denna operation utförs med ett grafiskt gränssnitt. Bland annat är det värt att lyfta fram Jedit, Geany, Regexxer, etc.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   TSH sade

    super

  2.   Skeptisk sade

    Jag använder Gedit

    1.    mrlon sade

      gedit för flera filer ??? som???

  3.   ron sade

    Hur kunde jag sätta en grep mellan ai?

    Vad jag behöver är att göra följande, söka inuti hemmet efter alla filer som heter index.html och som innehåller ordet "XXXXXXX" och ersätta det med "ÅÅÅÅÅÅÅÅ", eftersom det kan göras så att det bara söker in filerna som faktiskt har strängen?

    Tack så mycket !

  4.   MelhorHospedagem sade

    Jag använder Gedit också, men tack så mycket

  5.   Ängelgarcia sade

    Du saknar argumentet för exec. Den korrekta koden skulle vara:
    hitta / hem / användare / minmapp / -namn * .txt -exec sed -i "s / mongo / aurelio / g" {} \;

    Hälsningar 😀

    1.    låt oss använda Linux sade

      Du har rätt! Tack!
      Jag har redan rättat till det. : =)

  6.   gardo sade

    Jag försökte just detta (som ROOT):

    hitta / usr / dela / ikoner / ACYL-Allgray / -name * .svg -exec sed -i "s / 666666/000000 / g" {} \;

    för att ändra färgen på en hel uppsättning ikoner. Sanningen är att det är ett mycket kraftfullt kommando, normalt skulle den här uppgiften ha tagit mig timmar att redigera fil för fil.

  7.   Edmundo sade

    Infoga text i flera filer, enligt radnumret, i mitt fall rad 2 (2i), i centos linux

    hitta / hem // public_html / res / -name -exec sed -i "2i \;" {} \;

    1.    Edmundo sade

      inte all kod kom ut så jag skickade in igen:

      hitta / home / user / public_html / res / -name filnamn.ext -exec sed -i "2i \ text för att infoga" {} \;