Команда sed (редактор потоків) у Linux є потужним інструментом для обробки тексту та модифікації файлів. Вона дозволяє користувачам ефективно шукати, замінювати, вставляти і видаляти текст у файлах, що робить її життєво важливою командою для автоматизації і написання сценаріїв. У цьому посібнику ми розглянемо, як використовувати команду sed для оновлення файлів у Linux на практичних прикладах.
Команда sed широко використовується для:
✅ Заміна тексту – легко замінює слова, фрази або шаблони у файлах.
пакетна обробка – зміна декількох файлів одночасно за допомогою скриптів.
ефективність – швидко обробляє великі файли, не відкриваючи їх.
вбудоване редагування – зміна файлів безпосередньо з командного рядка.
автоматизація – використовується в скриптах для обробки повторюваних змін тексту.
Загальний синтаксис команди sed наступний:
sed [OPTIONS] 's/old-text/new-text/g' filename
Де:
Щоб замінити певне слово у файлі, використовуйте:
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 '/unwanted-text/d' file.txt
Це видалить усі рядки, що містять “небажаний текст”.
Щоб видалити певний рядок, використовуйте:
sed '5d' file.txt
Це видалить рядок 5 з file.txt.
Додати рядок перед певним номером рядка:
sed '3i\This is a new line' file.txt
Це вставить “Це новий рядок” перед рядком 3.
Вставити рядок після певного номера рядка:
sed '3a\This is an appended line' file.txt
Це додасть “Це доданий рядок” після рядка 3.
Замінити текст у кількох файлах одночасно:
sed -i 's/Linux/Ubuntu/g' *.txt
Ця команда змінює всі файли .txt в каталозі, замінюючи “Linux” на “Ubuntu”.
Щоб виконати кілька модифікацій одночасно:
sed -i -e 's/Linux/Ubuntu/g' -e 's/Server/Cloud/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 може автоматизувати і спростити ці завдання. Опанувавши sed, ви зможете покращити свій робочий процес і підвищити продуктивність в адмініструванні Linux та написанні сценаріїв.