Когда работаешь с огромными текстовыми файлами, важно иметь инструмент, который может обрабатывать их быстро и эффективно. Именно здесь на сцену выходит sed - утилита для потокового редактирования текстов в Unix-подобных системах.
sed 's/старый/новый/g' bigfile.txt
s/старый/новый/g - заменяет все вхождения слова "старый" на "новый" в каждом строке файла.
Удаление строк по условию. Удалим все строки, содержащие слово "ошибка":
sed '/ошибка/d' bigfile.txt
/ошибка/d - удаляет строки с упоминанием слова "ошибка".
Извлечение строк. Извлечём строки с 10 по 20:
sed -n '10,20p' bigfile.txt
-n отключает автоматический вывод, а 10,20p выводит строки с 10 по 20.
Обработка больших файлов.
sed обрабатывает файлы построчно, что делает его идеальным для работы с огромными текстовыми данными.Пример: Удаление пустых строк.
Если нужно очистить файл от пустых строк:
sed '/^$/d' bigfile.txt > cleaned.txt
/^$/d - удаляет строки, содержащие только перенос строки.
Пример: Добавление текста в начало файла
Добавим текст "Заголовок" в начало большого файла:
sed -i '1i Заголовок' bigfile.txt
1i — вставляет текст перед первой строкой.
Автоматизация с sed.
sed отлично подходит для автоматизации задач в скриптах. Например, регулярная замена в логах или данных:
#!/bin/bash
for file in /logs/*.log; do
sed -i 's/DEBUG/INFO/g' "$file"
done
Этот скрипт обновит все лог-файлы, заменив уровень логирования DEBUG на INFO.
Советы по оптимизации
Используйте -i для редактирования файла на месте (встроенное изменение).
При работе с огромными файлами добавьте -e для объединения нескольких команд sed в один проход.
BashTex 📱 #linux #utils