Edycja wielu plików tekstowych z linii poleceń
Pliki tekstowe (przechowywane zazwyczaj z rozszerzeniem txt
) są jedną z najpopularniejszych form przechowywania tekstu. Niemal każde urządzenie z wyświetlaczem jest w stanie je otworzyć bez względu na to, czy jest leciwe, czy pachnące nowością. Skoro więc mamy do czynienia z tą formą dokumentów, być może zdarza się, że musimy wprowadzić w nich zmiany, jak na przykład podmienić jedne wyrażenia na inne. W jednym pliku to nie sprawia trudności, ale co wtedy, gdy takich plików jest wiele?
Seria 101 jest kierowana do osób, które dopiero rozpoczynają swoją przygodę ze sprzętem Apple. Mamy nadzieję, że dzięki zawartym w niej wskazówkom będziecie mogli nauczyć się wykorzystywać Wasze telefony, tablety czy komputery w jeszcze bardziej efektywny sposób.
Pomocą może posłużyć chociażby Terminal i to przynajmniej na kilka sposobów. A oto i one:
Za pomocą narzędzia sed
sed
to dość rozbudowane narzędzie. Jedną z jego możliwości jest właśnie zastępowanie tekstów. A wszystko odbywa się przy pomocy poniższej komendy:
sed -i "" 's/szukany wyraz lub fragment/podmieniony tekst/g' /ścieżka/DoPlików/*.txt
Dla przykładu, jeśli mamy 3 pliki tekstowe (tekst1.txt
, tekst2.txt
oraz tekst3.txt
), w których znajdują się kolejno zdania:
- Ala ma kota
- Ala to koala.
- Jest 1 września, więc Ala wyrusza do szkoły.
Pliki trzymane są na naszym Biurku. Jeśli chcielibyśmy podmienić w nich nazwę Ala
na Patrycja
, to polecenie w Terminalu będzie wyglądać następująco:
sed -i "" 's/Ala/Patrycja/g' ~/Desktop/tekst*.txt
Gdybyśmy jednak chcieli na wszelki wypadek zachować zawartość oryginalnych plików, to można to zrobić dodając w miejsce -i ""
jakieś rozszerzenie, np.:
sed -i ".bak" 's/Ala/Patrycja/g' ~/Desktop/tekst*.txt
Powyższe polecenie podmieni zawartość plików tekstowych, ale przy okazji stworzy kopię tych oryginalnych, które będą miały rozszerzenie .bak
.
Za pomocą narzędzia perl
Druga, podobna metoda przy wykorzystaniu innego narzędzia. Jej użycie wygląda następująco:
perl -pi -w -e 's/tekst do odnalezienia/tekst do zastąpienia/g;' /ścieżka/doPlików/*.txt
Wariant z kopią zapasową z rozszerzeniem .bak
:
perl -pi.bak -w -e 's/tekst do odnalezienia/tekst do zastąpienia/g;' /ścieżka/doPlików/*.txt
Źródło: Lifehacker