Редагування текстових файлів у 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 замінити всі екземпляри тексту (яблука) на новий текст (апельсини). Це має виглядати як у прикладі нижче.
Примітка: якщо ви не хочете замінювати кожен текст у файлі (наприклад, яблука на апельсини), видаліть 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 часто використовується для обробки тексту, тому, природно, він може замінювати текстові рядки у файлах і ідеально підходить для цього випадку.
Для початку переконайтеся, що на вашому ПК 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», вам потрібно буде вказати його в команді.
Примітка: у цьому прикладі файл «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