💾 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
-=-=-=-=-=-=-
title: "Команда Linux Sed"
date: 2024-10-01T10:01:42
tags: ["sed command"]
categories: ["linux-tutorials"]
В этом руководстве мы объясним команду Linux SED на реальных примерах. SED (Stream Editor) — одна из наиболее часто используемых команд Linux в скриптах и командных строках. Она ищет, заменяет, вставляет и удаляет строки. Наиболее распространенное применение команды SED — поиск и замена строки в файле без его открытия, что экономит время. Системные администраторы регулярно используют эту команду при написании скриптов и автоматизации задач на сервере.
В следующих параграфах мы научим вас всему, что вам нужно знать о команде SED. Давайте начнем!
Основной синтаксис команды SED следующий:
sed [ПАРАМЕТР]… {только-сценарий-если-нет-другого-сценария} [входной-файл]…
Сначала один файл; мы будем использовать его для всех примеров в следующих параграфах. Создайте один 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 номер два, и был использован вами, если что-то не так, вы не имеете понятия.
Чтобы заменить определенную строку, будь то с заглавными или строчными буквами, вам нужно использовать флаг `i` в команде. Давайте заменим слово «два» на слово «серебра»:
sed -n 's/два/серебра/ip' test.txt
Вы должны получить только измененные строки:
Три серебра, один и вот мы начинаем.. Debian это номер серебра и используется вами, если что-то не так, вы не имеете понятия.
Если вы хотите узнать подробности о команде 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, поделитесь им с друзьями или оставьте комментарий ниже.