Cauta si inlocuieste un cuvant din interiorul unui fisier (Linux Command Line)

Advertisements

Daca avem un fisier text  si avem nevoie sa cautam si inlocuim un cuvant din interiorul lui, cu un alt cuvant sau cu o fraza, pe Windows avem nenumarate solutii. Putem folosi Notepad-ul, WordPad-ul sau   Office (astea ar fi cele mai uzuale)

Replace Text in Notepad - Windows

Comanda de "search & replace" in fisiere text foarte mari devine o problema pe Windows. Spun din experianta ca un fisier text de peste 50 MB in care avem de inlocuit un cuvant cu "Replace All" devine o problema pentru un sistem de operare , indiferent daca fisierul a fost deschis in Notepad, WordPad sau intr-un alt editor text.

Problema devine mult  mai simpla cand este vorba de . Cu o simpla linie de comanda (bash command) putem cauta si inlocui un cuvant din interiorului unui fisier (fisierul poate fi ., ., .txt, .sql, etc format care sa contina text) intr-un timp foarte scurt. Mult mai scurt decat pe Windows.

Cauta si inlocuieste in interiorului unui fisier text folosind comanda "sed".

Sa zicem ca avem intr-un fisier text (document.txt) cuvantul "abc" pe care dorim sa-l inlocuim cu "xyz". Linia de comanda prin care putem inlocui cuvantul va fi urmatoarea:

sed -ie 's/abc/xyz/g' document.txt

Cand executam comanda, conditia este sa ne aflam in folderul in care se afla document.txt. Daca nu suntem in folderul documentului, dar cunoastem "calea" acestuia, linia de comanda va fi:

sed -ie 's/abc/xyz/g' /var/www/document.txt

Unde "/var/www/" este folderul in care sa afla fisierul document.txt.

Dupa executarea liniei de comanda, optiunea "-i" va crea un fisier de backup identic cu cel original, dar la extensia caruia va adauga litera "e". In cazul nostru, documentul de backup va fi document.txte

-i[SUFFIX], –in-place[=SUFFIX] : edit files in place (makes backup if extension supplied)

-e script, –expression=script : add the script to the commands to be executed.

Aceasta comanda de "find & replace" nu este valabila numai pentru fisierele .txt. Puteti inlocui cuvinte in interiorul oricarui fisier care contine text. Chiar si in fisiere ale bazelor de date (.SQL)

Find ad Replace - sed Bash Command Line

Find & Replace Inside a Text File (Linux Bash Command Line).

Advertisements

PROGRAME, TUTORIALE SI NOUTATI IT PE E-MAIL

SALVEAZA LA FAVORITE / BOOKMARKS

comments

ArabicBulgarianChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEstonianFinnishFrenchGermanGreekHebrewHindiHungarianIndonesianIrishItalianJapaneseKoreanLatvianLithuanianNorwegianPolishPortugueseRomanianRussianSerbianSlovakSlovenianSpanishSwedishThaiTurkishUkrainianVietnamese