💾 Archived View for byzoni.org › gemlog › 2024-10-01-linux-sed-command.gmi captured on 2024-12-17 at 10:07:16. Gemini links have been rewritten to link to archived content

View Raw

More Information

-=-=-=-=-=-=-

title: "Команда Linux Sed"

date: 2024-10-01T10:01:42

tags: ["sed command"]

categories: ["linux-tutorials"]

⏪ На главную

⏪ В Gemlog

В этом руководстве мы объясним команду Linux SED на реальных примерах. SED (Stream Editor) — одна из наиболее часто используемых команд Linux в скриптах и ​​командных строках. Она ищет, заменяет, вставляет и удаляет строки. Наиболее распространенное применение команды SED — поиск и замена строки в файле без его открытия, что экономит время. Системные администраторы регулярно используют эту команду при написании скриптов и автоматизации задач на сервере.

В следующих параграфах мы научим вас всему, что вам нужно знать о команде SED. Давайте начнем!

Предварительные условия

Синтаксис команды SED

Основной синтаксис команды SED следующий:

sed [ПАРАМЕТР]… {только-сценарий-если-нет-другого-сценария}
               [входной-файл]…

Создайте txt файл

Сначала один файл; мы будем использовать его для всех примеров в следующих параграфах. Создайте один txt-файл:

nano test.txt

Вставьте следующие строки кода:

Три, два, один и вот мы начинаем..

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

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

AlmaLinux это номер три, который должен быть, вы никогда не сможете его использовать, если у вас нет степени администратора Linux.

Заменить строку в файле

Этот пример предназначен для замены определенной строки во всем файле .txt. Например, чтобы заменить строку «номер» на слово «цифра», вам нужно выполнить следующую команду:

sed 's/номер/цифра/g' test.txt

После выполнения этой команды вы получите следующий вывод:

Три, два, один и вот мы начинаем..

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

Debian это цифра два, и вы ее используете, если что-то не так, о чем вы не имеете понятия. 

AlmaLinux это цифра три, которая должна быть, вы никогда не сможете ее использовать, если у вас нет степени администратора Linux.

Заменить строку в определенной строке

Чтобы заменить строку «это» в третьей строке на «был», выполните следующую команду:

sed '3 s/это/был/' test.txt

Вы должны получить следующий результат:

Три, два, один и вот мы начинаем..

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

Debian номер два, и вы его используете, если что-то не так, о чем вы не имеете понятия. 

AlmaLinux номер три, который должен быть, вы никогда не сможете его использовать, если у вас нет степени администратора Linux.

Заменить определенное вхождение в строке файла

Чтобы заменить строку в определенном вхождении в строке файла, например, слово «это» во втором вхождении на «был», нужно выполнить следующую команду:

sed 's/это/был/2' test.txt

Вы заметите, что во второй и третьей строках слово «это» во втором случае заменено на «был».

Три, два, один и вот мы начинаем..

Ubuntu номер один, был быстрым и убивает как пушка, администраторы используют его для развлечения. 

Debian номер два, и был использован вами, если что-то не так, вы не имеете понятия. 

AlmaLinux номер три, который должен быть, вы никогда не сможете его использовать, если у вас нет степени администратора Linux.

Печатать только строки с замененным текстом

Как видите, выводом стал весь текст после изменения. Если мы хотим увидеть только измененные строки, нам нужно использовать следующую команду:

sed -n 's/это/был/2p' test.txt

Вы должны увидеть только строки с изменениями:

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

Debian номер два, и был использован вами, если что-то не так, вы не имеете понятия.

Заменить строку с Ignore Case

Чтобы заменить определенную строку, будь то с заглавными или строчными буквами, вам нужно использовать флаг `i` в команде. Давайте заменим слово «два» на слово «серебра»:

sed -n 's/два/серебра/ip' test.txt

Вы должны получить только измененные строки:

Три серебра, один и вот мы начинаем..

Debian это номер серебра и используется вами, если что-то не так, вы не имеете понятия.

О команде SED

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

man sed

Вы получите полное объяснение команды, опций, синопсис и т.д.

NAME
       sed - stream editor for filtering and transforming text

SYNOPSIS
       sed [-V] [--version] [--help] [-n] [--quiet] [--silent]
           [-l N] [--line-length=N] [-u] [--unbuffered]
           [-E] [-r] [--regexp-extended]
           [-e script] [--expression=script]
           [-f script-file] [--file=script-file]
           [script-if-no-other-script]
           [file...]

Вот и все. Вы узнали несколько основных и важных команд SED в ОС Linux.

Если вам понравился этот пост о команде SED, поделитесь им с друзьями или оставьте комментарий ниже.