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

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

Замінити текстовий рядок у файлі – sed

Інструмент sed — це найкращий спосіб замінити текстовий рядок у файлі в Linux. Причина? Він простий у використанні і дуже добре виконує свою роботу. Зазвичай Sed попередньо встановлено на 99% операційних систем Linux, тому для використання його не потрібно встановлювати.

Заміна текстового рядка у файлі на Sed виконується за допомогою команди sed -i. Ось як ним користуватися. Спочатку відкрийте вікно терміналу на робочому столі Linux. Ви можете відкрити вікно терміналу, натиснувши Ctrl + Alt + T на клавіатурі.

Коли вікно терміналу відкриється та готове до використання, напишіть sed -i у підказці терміналу. Це початок команди заміни.

sed -i

Після написання команди sed -i додайте лапки. Ця лапка є важливою, оскільки весь текст, який замінюється на sed -i, має починатися після цього знака.

sed -i '

Після першої позначки ‘ напишіть s/. S/ йде безпосередньо перед наявним текстом, який потрібно замінити за допомогою sed.

sed -i 's/

Тепер, коли s/ записаний у командний рядок термінала, настав час сказати sed, який текст замінити у файлі. У цьому прикладі ми замінимо слово «яблуко».

sed -i 's/apple

Коли текст, який ми хочемо замінити, буде записано в команду, наступним кроком буде введення нового тексту, який його замінить. У цьому прикладі ми замінимо «яблука» на «апельсини».

sed -i 's/apples/oranges

Після того, як текст, який ми хочемо замінити, буде записано в команду (апельсини), закрийте команду за допомогою g/. G/ повідомляє sed замінити всі екземпляри тексту (яблука) на новий текст (апельсини). Це має виглядати як у прикладі нижче.

  Як створити спеціальний шаблон полотна в Photoshop

Примітка: якщо ви не хочете замінювати кожен текст у файлі (наприклад, яблука на апельсини), видаліть g і запустіть його як sed -i ‘s/apples/oranges/’.

sed -i 's/apple/orange/g'

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

sed -i 's/apples/oranges/g' ~/fruit.txt

Натисніть клавішу enter, щоб виконати команду та замінити текстовий рядок у файлі.

Замінити текстовий рядок у файлі – Perl

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

  Як розширити сховище Xbox Series X|S

Для початку переконайтеся, що на вашому ПК Linux встановлено Perl. Більшість операційних систем Linux мають встановлений Perl. Однак, якщо у вас його немає, перегляньте сторінку довідки вашої операційної системи, щоб дізнатися, як змусити її працювати.

Використання Perl для заміни текстових рядків у файлі вимагає терміналу. Відкрийте термінал на робочому столі Linux, натиснувши Ctrl + Alt + T на клавіатурі. Або знайдіть «Термінал» у меню програми та запустіть його таким чином.

Після того, як вікно терміналу відкриється та готове до використання, почніть з введення perl -pe у рядку командного рядка. Команда perl -pe потрібна для заміни текстового рядка у файлі.

perl -pe

Після написання perl -pe у термінальному рядку вам потрібно буде почати з першої лапки. Ця позначка повідомляє Perl, де знаходиться область заміни тексту в команді.

perl -pe '

Після першої лапки додайте s/, потім рядок тексту, який потрібно замінити, і ще один /. Наприклад, щоб замінити «яблука» у файлі fruit.txt, ви повинні написати наступний текст.

perl -pe 's/apples/

Після написання слів, які потрібно замінити, додайте слово, яке замінить існуючий текст. Наприклад, якщо ви хочете замінити «apples» у «fruit.txt» на «oranges», додайте «oranges» після perl -pe ‘s/apples/, щоб він виглядав як perl -pe ‘s/apples/oranges/ .

perl -pe 's/apples/oranges/

Коли обидва рядки тексту будуть у команді, вам потрібно буде вказати вхідний файл, який використовує Perl. Наприклад, якщо ви хочете замінити текст у файлі «fruit.txt», вам потрібно буде вказати його в команді.

  Як запустити дисплей Retina з його рідною роздільною здатністю

Примітка: у цьому прикладі файл «fruit.txt» знаходиться в домашньому каталозі (~/). Обов’язково замініть «~/fruit.txt» місцем розташування текстового файлу, щоб команда працювала.

perl -pe 's/apples/oranges/' ~/fruit.txt

Тепер, коли вхідний файл (файл, який ви змінюєте за допомогою Perl) додано до команди, команда має виглядати так, як показано нижче.

perl -pe 's/apples/oranges/' ~/fruit.txt > /tmp/output.txt;cat /tmp/output.txt > ~/fruit.txt

Під час виконання наведеної вище команди текстовий рядок буде замінено новим текстом, який ви вказали. У нашому прикладі ми замінили «яблука» на «апельсини». Щоб переглянути зміни, введіть команду нижче.

cat fruit.txt