замінити текстовий рядок у файлі [Guide]

Коригування текстових файлів безпосередньо в Linux може виявитися доволі трудомістким завданням. Саме тому розуміння методів швидкої заміни текстових фрагментів за допомогою командного рядка є надзвичайно корисним. Якщо ви новачок у світі Linux і не впевнені, як це зробити, не хвилюйтеся! Ми покажемо вам, як легко замінити текст у файлі за допомогою команд.

Заміна тексту з використанням sed

Інструмент sed є одним з найефективніших способів заміни текстових рядків у файлах Linux. Його простота використання та висока продуктивність роблять його ідеальним вибором. Більшість дистрибутивів Linux мають sed встановленим за замовчуванням, що звільняє вас від необхідності додаткового встановлення.

Команда sed -i є ключем до заміни тексту. Щоб почати, відкрийте термінал. Найшвидший спосіб – натиснути комбінацію клавіш Ctrl + Alt + T.

У терміналі введіть sed -i. Це початок вашої команди.

sed -i

Далі, додайте одинарні лапки '. Ці лапки важливі, оскільки вони обмежують текст команди sed.

sed -i '

Після відкриваючої лапки введіть s/. Це означає “замінити”.

sed -i 's/

Наступним кроком є зазначення тексту, який ви хочете замінити. Для прикладу, візьмемо слово “яблуко”.

sed -i 's/яблуко

Тепер вкажіть, на який текст потрібно замінити старий. Наприклад, замінимо “яблуко” на “апельсин”.

sed -i 's/яблуко/апельсин

Завершіть команду, додавши /g. Цей параметр вказує sed замінити всі входження слова “яблуко” на “апельсин”. Команда буде виглядати так:

Примітка: Якщо ви хочете замінити лише перше входження, видаліть параметр g (наприклад, sed -i 's/яблуко/апельсин/').

sed -i 's/яблуко/апельсин/g'

Нарешті, вкажіть шлях до файлу, в якому потрібно замінити текст. У нашому прикладі, файл fruit.txt знаходиться в домашньому каталозі.

sed -i 's/яблуко/апельсин/g' ~/fruit.txt

Натисніть Enter, щоб виконати команду. Текст у файлі буде замінено.

Заміна тексту за допомогою Perl

Інший ефективний метод заміни тексту в Linux – використання мови програмування Perl. Perl відомий своєю потужною обробкою тексту і, звісно, може легко замінити текстові рядки у файлах.

Переконайтеся, що Perl встановлений на вашому комп’ютері. Зазвичай, він вже є в більшості дистрибутивів Linux. Якщо ні, зверніться до інструкцій з встановлення для вашої операційної системи.

Відкрийте термінал (Ctrl + Alt + T) і введіть perl -pe. Ця команда необхідна для заміни тексту.

perl -pe

Після perl -pe додайте одинарну лапку '. Вона обмежує команду заміни тексту.

perl -pe '

За лапкою введіть s/, потім текст, який потрібно замінити, і ще один /. Наприклад, щоб замінити “яблуко”, ви повинні написати:

perl -pe 's/яблуко/

Далі, вкажіть текст, на який потрібно замінити старий. Наприклад, замінимо “яблуко” на “апельсин”. Команда буде виглядати так: perl -pe 's/яблуко/апельсин/'.

perl -pe 's/яблуко/апельсин/

Тепер потрібно вказати файл, в якому виконується заміна. Наприклад, fruit.txt.

Примітка: У цьому прикладі fruit.txt знаходиться в домашньому каталозі (~/). Замініть ~/fruit.txt на фактичний шлях до вашого файлу.

perl -pe 's/яблуко/апельсин/' ~/fruit.txt

Коли всі елементи команди будуть введені, вона буде виглядати приблизно так:

perl -pe 's/яблуко/апельсин/' ~/fruit.txt > /tmp/output.txt;cat /tmp/output.txt > ~/fruit.txt

Після виконання цієї команди, вказаний текст буде замінено новим. Щоб побачити зміни, введіть команду:

cat fruit.txt