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