TGViewer
Записки IT специалиста Записки IT специалиста @interface31 · 8.99K subscribers
Post #6414 2.12K
Используем команду sed для работы с текстом

Утилита sed - потоковый текстовый редактор. Широко используется для работы с потоками данных в скриптах и консольных командах. Владение данной утилитой относится к основам администрирования Linux.

В общем случае работа sed задается конструкцией:

команда/вхождение/замена/флаги


Например, результатом работы команды:

echo "Сегодня 1 апреля"  | sed 's/апреля/мая/'


Будет строка “Сегодня 1 мая” , в данном случае s – обозначает действие замены, далее идет вхождение и замена.

Если нужно выполнить несколько действий, то разделяем их точкой с запятой и добавляем ключ -e:

 "Сегодня 1 апреля"  | sed -e 's/сегодня/Завтра/i; s/апреля/мая/'


Так как мы не уверены, как именно может быть написано слово «Сегодня», то мы добавили к первому действию флаг i, который предписывает игнорировать регистр.

Пока что мы работали с потоками стандартного ввода-вывода, но также на вход можно подать файл:

 's/апреля/мая/' file.txt


Тогда будут прочитаны все строки файла и в каждой из них, при совпадении будет выполнена замена. Результат будет выведен в стандартный поток вывода, исходный файл изменен не будет.

В поток вывода добавляются все строки, а не только те, которые были заменены. При необходимости можете сохранить его в отдельный файл используя перенаправление.

Другой вариант – использовать флаг w с указанием файла, но в этом случае в него будут записаны только те строки, где была произведена замена:

sed 's/апреля/мая/w out.txt' file.txt


Если нам нужно редактировать непосредственно исходный файл, то следует запустить команду с ключом -i (не следует путать с командой i):

sed -i 's/апреля/мая/' file.txt


В этом случае все замены будут произведены внутри файла, в стандартный поток вывода ничего отправляться не будет.

При работе с файлом можно указывать строки или диапазоны строк для замены, например только вторую строку:

sed '2s/апреля/мая/' file.txt


Или со 2 строки по 5:

sed '2,5s/апреля/мая/' file.txt


Для указания последней строки используйте символ $:

sed '5,$s/апреля/мая/' file.txt


Данная конструкция заменит вхождения с 5 строки по последнюю.

Если не указано иного, то sed заменят только первое вхождение в строке, номер вхождения можно указать при помощи флага или использовать флаг глобальной замены – g, при использовании данного флага с номером будут заменены все вхождения начиная с указанного, например, с третьего:

sed 's/апреля/мая/3g' file.txt


Кроме изменения строк sed можно использовать для удаления строк из потока, для этого просто укажите их номер или диапазон номеров:

sed '2,5d' file.txt


Также можно использовать вхождения, например, удалим все строки со словом «апреля»:

sed '/апреля/ d' file.txt


Можно использовать и несколько вхождений, но будьте осторожны, sed удалит все строки между ними:

sed '/апреля/,/мая/3d' file.txt


Также sed можно использовать для добавления строк в поток, в начало или конец потока, для добавления в начало используйте:

sed 'i\Это первая строка' file.txt


В конец:

sed 'a\Это последняя строка' file.txt


Или явно укажите номер строки от начала или конца:

sed '2i\Это вторая строка' file.txt


Команда с полностью заменит содержимое указанной строки:

sed '3c\Это новое содержимое третьей строки' file.txt


Еще одна возможность sed – замена символов, но при этом область замены нельзя ограничить, будет выполнена обработка всего потока, например заменим a на b, с на d и e на f:

sed 'y/ace/bdf/' file.txt


Это не полный набор приемов и возможностей sed, Телеграм накладывает ограничения на размер заметки, но уже этого достаточно для эффективного применения утилиты и получения новых навыков работы с текстом.
  • 👍 33
  • ❤ 6
  • 🤮 1
  • 👌 1
More from @interface31
  1. Sep 25, 2026Десктопный стриптиз Очень часто во многих технических сообществах возникают флешмобы – а д…
  2. Sep 25, 2026Не застревайте в прошлом — учитесь новым навыкам и ИИ Чтобы успевать за требованиями рынка…
  3. Sep 25, 2026Что такое SRV-записи DNS и для чего они нужны В комментариях к нашим заметкам по DNS уже н…
  4. Sep 25, 2026Многие компании уже запускают ИИ-проекты, но далеко не все доводят их до результата. Для э…
  5. Sep 24, 2026Сеанс двоичной магии с разоблачением Сегодня мы поговорим о том, как правильно рассчитать…
  6. Sep 24, 2026Post #6788
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →