Команда sed (Stream Editor) у Linux — це потужний інструмент для обробки тексту та редагування файлів. Вона дозволяє користувачам шукати, замінювати, вставляти та видаляти текст у файлах, що робить її незамінною для автоматизації та написання скриптів. У цьому керівництві ми розглянемо, як використовувати команду sed для оновлення файлів у Linux із практичними прикладами.
Команда sed широко застосовується для:
✅ Заміни тексту – Просте заміщення слів, фраз або шаблонів у файлах.
✅ Обробки декількох файлів – Зміна одразу кількох файлів за допомогою скриптів.
✅ Ефективності – Швидке редагування великих файлів без їх відкриття.
✅ Редагування «на льоту» – Модифікація файлів прямо з командного рядка.
✅ Автоматизації – Використання у скриптах для обробки тексту.
Загальний синтаксис команди sed:
sed [ОПЦІЇ] 's/старий-текст/новий-текст/g' ім'я_файлу
Де:
Щоб замінити слово у файлі, використовуйте:
sed 's/Linux/Ubuntu/g' file.txt
Ця команда замінить перше входження “Linux” на “Ubuntu” у кожному рядку file.txt.
Щоб замінити всі входження слова глобально:
sed 's/Linux/Ubuntu/g' file.txt
Флаг g гарантує заміну кожного входження у рядку.
Щоб внести зміни безпосередньо у файл без виведення на екран:
sed -i 's/Linux/Ubuntu/g' file.txt
Флаг -i вмикає редагування файлу без створення його копії.
Щоб змінити текст лише у певному рядку файлу:
sed '3s/Linux/Ubuntu/' file.txt
Ця команда замінює “Linux” на “Ubuntu” лише у рядку 3.
Щоб видалити всі рядки, що містять певне слово:
sed '/непотрібний-текст/d' file.txt
Ця команда видалить усі рядки, що містять “непотрібний-текст”.
Щоб видалити рядок за його номером:
sed '5d' file.txt
Ця команда видаляє рядок 5 у file.txt.
Щоб додати рядок перед певним номером рядка:
sed '3i\Це новий рядок' file.txt
Ця команда вставляє “Це новий рядок” перед рядком 3.
Щоб вставити рядок після певного номеру рядка:
sed '3a\Це доданий рядок' file.txt
Ця команда додає “Це доданий рядок” після рядка 3.
Щоб замінити текст одразу у кількох файлах:
sed -i 's/Linux/Ubuntu/g' *.txt
Ця команда змінює всі файли .txt у поточній директорії, замінюючи “Linux” на “Ubuntu”.
Щоб виконати одразу кілька замін у файлі:
sed -i -e 's/Linux/Ubuntu/g' -e 's/Сервер/Хмара/g' file.txt
Ця команда замінює “Linux” на “Ubuntu” і “Сервер” на “Хмара” у file.txt.
Щоб замінити всі цифри у файлі:
sed 's/[0-9]/#/g' file.txt
Ця команда замінює всі цифри символом #.
Щоб відобразити рядки з 5-го по 10-й:
sed -n '5,10p' file.txt
Флаг -n запобігає виведенню всього файлу, відображаючи лише рядки 5-10.
🔹 Завжди створюйте резервну копію файлів перед використанням -i – це допоможе уникнути втрати даних.
🔹 Використовуйте регулярні вирази – потужний інструмент для складних замін.
🔹 Перевіряйте команди перед внесенням змін – спершу запустіть sed без -i, щоб переглянути результат.
🔹 Використовуйте скрипти для автоматизації – поєднуйте sed зі скриптами оболонки для масової обробки файлів.
Команда sed — це потужний та ефективний інструмент для оновлення файлів у Linux. Опанувавши sed, ви зможете автоматизувати обробку текстових файлів і спростити адміністрування системи.