Пошук та заміна тексту

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.

Дивіться Також:

  1. GNU sed manual: https://www.gnu.org/software/sed/manual/sed.html
  2. Advanced Bash-Scripting Guide: https://www.tldp.org/LDP/abs/html/
  3. Відео по sed в дії: https://www.youtube.com/watch?v=g6tOQL1PSDU