Bash:
Пошук та заміна тексту
Як це зробити:
Розглянемо інструмент sed, який стоїть за цим ділом. Приклади:
Заміна першого входження ‘старий’ на ‘новий’ в файлі:
sed 's/старий/новий/' файл.txtЗаміна всіх входжень ‘старий’ на ‘новий’:
sed 's/старий/новий/g' файл.txtЗмінюємо ‘старий’ на ‘новий’ і записуємо результат у файлах .txt:
sed -i '.backup' 's/старий/новий/g' *.txtВиведення лише змінених рядків:
sed -n 's/старий/новий/p' файл.txtПоглиблений Розгляд:
sed – це скорочення від stream editor, створений на початку 70-х. Його альтернативи – awk, perl, python. На відміну від grep, що лише знаходить текст, sed ще й змінює його.
Для ефективності, sed працює в поточному режимі, обробляючи вхідні дані потоково, по рядках. Це зменшує використання пам’яті, особливо для великих файлів.
Параметр -i означає in-place, тобто зміни збережуться у вихідному файлі. Створюється бекап, якщо вказати розширення після -i.
Дивіться Також:
- GNU sed manual: https://www.gnu.org/software/sed/manual/sed.html
- Advanced Bash-Scripting Guide: https://www.tldp.org/LDP/abs/html/
- Відео по
sedв дії: https://www.youtube.com/watch?v=g6tOQL1PSDU