Sed: Изучите этот классический инструмент для обработки текста

Раскрытие информации: Ваша поддержка помогает поддерживать работу сайта! Мы зарабатываем реферальную плату за некоторые услуги, которые мы рекомендуем на этой странице.


Sed – это служебная программа и простой язык сценариев, используемый для редактирования текста. Название является аббревиатурой от «редактора потоков», и его целью на самом деле является редактирование потоков ввода – обычно отдельных строк в файле или отдельного потока из стандартного ввода (стандартный ввод).

Язык не очень мощный. Хотя sed завершен по Тьюрингу, он неэффективен для любых реальных задач программирования – например, он имеет только две доступные переменные. Это, однако, очень полезно для программного поиска и редактирования шаблонов текста в файлах, из командной строки или из сценария оболочки.

Наиболее важной командой sed является s, которая является командой замены. Команда принимает два аргумента и флаг опций. Например, если вы хотите исправить каждый экземпляр британского «color» на американский «color» и записать исправленную версию в новый файл, вы можете сделать следующее из командной строки:

sed s / color / color / g new.file

Быстрое объяснение:

  • S / начинает команду замены.
  • То, что находится между первой парой слешей, является подходящим шаблоном. В данном случае это слово «цвет», но оно также может быть регулярным выражением – шаблоном, а не конкретной строкой символов..
  • После шаблона для сопоставления является строка замены.
  • G означает «глобальный» или «делай это каждый раз, а не только в первый раз».

И шаблон для сопоставления, и подстановка могут быть переменными. Если шаблон для сопоставления является регулярным выражением, и вы хотите изменить его (не просто заменить), вы можете использовать амперсанд ( & ), чтобы указать соответствующий шаблон. Например, предположим, что вы хотите превратить все обычные текстовые URL в гиперссылки HTML. Вы могли бы сделать это:

sed ‘s_http [:] // [^] * _&_»

  • При этом вместо косой черты используется разделитель подчеркивания, чтобы было легче читать все косые черты, уже присутствующие в URL..
  • Соответствующий шаблон – это регулярное выражение, которое соответствует правильно сформированным URL-адресам (хотя и ограниченным образом)..
  • Подстановка создает тег привязки с соответствующим шаблоном (URL) в атрибуте href и тексте тега..

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

Sed Интернет-ресурсы и учебные пособия

  • Sed – Введение и Учебное пособие в Grymoire Мастера Unix, содержит отличное введение и ссылку на sed;
  • Sed Tutorial – это приличное введение, объясняющее некоторые закулисные работы, которые выполняет sed;
  • Учебное пособие по Sed в Tutorials Point – это очень четкое и методичное описание наиболее важных концепций sed;
  • Использование Sed – отличный учебник из двух частей от Digital Ocean;
  • YouTuber Kris Occhipinti имеет 18-частное учебное пособие по Sed Video;
  • Sed-Tutorial от LinuxHowtos – это небольшое, но полезное руководство по sed;
  • Sed Subreddit не очень активен, но многие sed (и связанные с ним) вопросы появляются в rered и командной строке subreddits;

Книги по Седу

  • Sed & Awk (1997), созданный Догерти и Роббинсом, является классическим текстом о двух наиболее важных текстовых инструментах командной строки; если вы можете прочитать только одну вещь на sed, это, вероятно, тот, который нужно прочитать; также проверьте удобный компаньон Aed & Awk Pocket Reference;
  • Полное руководство по Sed: Tutorial and Reference (2013) Даниэля Голдмана (Daniel A Goldman), предоставляет гораздо более современную перспективу использования sed с особым акцентом на GNU sed (gsed);
  • Коллекция сценариев Ksh, Awk и Sed: освоение программирования на Unix с помощью практических примеров () Стива Майерса – это кулинарная книга полезных сценариев оболочки.

Sed vs Awk и другие варианты

Инструмент sed – это всего лишь одна из многих опций для поиска и манипулирования текстом из командной строки или в сценариях оболочки. Наиболее часто сравниваемый инструмент – Awk, но есть и grep. Кроме того, вы можете использовать более надежные языки сценариев, такие как Perl или Python.

Вот несколько ресурсов, которые помогут вам определить, какой инструмент лучше всего подходит для ваших задач поиска текста и редактирования на месте:

  • Grep vs Sed vs Awk: Что должен знать опытный / продвинутый пользователь Linux Shell – это фантастическая статья, описывающая три основных инструмента обработки текста, с большим количеством деталей о том, когда использовать какой из них;
  • Когда использовать Sed / Awk поверх Perl или Python – это сообщение на форуме, в котором обсуждается, когда использовать полноценные языки сценариев по сравнению с более простыми инструментами обработки текста;
  • Различия в функциональности и производительности Sed, Awk и других утилит Unix Parsing обеспечивают подробное техническое сравнение, включая примечания по скорости;
  • В чем разница между Sed и Awk? на StackExchange его считали «не по теме», но, к счастью, несколько пользователей в любом случае дали очень полезные ответы; если у вас нет времени для более подробных объяснений, приведенных выше, эта страница предоставляет лучший 30-секундный обзор.

Книги и ресурсы по смежным темам

Чтобы эффективно использовать sed, вам нужны навыки в двух смежных областях: регулярные выражения и сценарии оболочки в целом. Вот несколько книг и онлайн-учебников, которые помогут вам завершить ваши навыки sed.

В дополнение к этим ресурсам, вы также должны проверить наши страницы на Awk и Bash.

книги

  • Представление Регулярных выражений (2012) Майкла Фитцджеральда – очень полезный вводный текст, который делает эту потенциально пугающую тему легкой для понимания; в частности, он включает в себя сценарии sed, а также информацию об использовании регулярных выражений в Perl
  • Освоение регулярных выражений (2006) Джеффри Фридлом – ваш ресурс регулярных выражений следующего уровня, после вступительного текста выше;
  • Classic Shell Scripting (2005), написанная Роббинсом и Бибом, представляет собой книгу, которая охватывает наиболее важные инструменты командной строки Unix и инструменты сценариев, включая sed; Арнольд Роббинс, один из авторов, также является соавтором классического Sed & Awk книга, перечисленная выше.

Интернет-ресурсы

Есть много интернет-ресурсов по этим темам. Вот только некоторые из самых полезных:

  • RegExr – это онлайн-инструмент для изучения, построения и тестирования регулярных выражений;
  • RegEx101 – еще один онлайн-тестер регулярных выражений со встроенной шпаргалкой и полезными отзывами о разборе;
  • Шпаргалка Regex предоставляет исчерпывающую справку, когда вам нужно узнать, какую, казалось бы, случайную строку символов вам нужно набрать, чтобы найти, казалось бы, случайную строку символов, которую вы ищете;
  • Grymoire, упомянутый выше, является источником информации для сценариев Unix;
  • Linux Shell Scripting Tutorial является одним из лучших онлайн-учебников для изучения Bash.

Резюме

Было время, когда практически все серьезные пользователи компьютеров хорошо знали такие инструменты командной строки, как sed. Хорошо это или плохо, это время давно прошло. Сегодня даже многие продвинутые разработчики не знают, как использовать эти фундаментальные инструменты.

Однако, если вы заинтересованы в том, чтобы максимально повысить свою эффективность в качестве опытного пользователя – особенно в среде Linux, Unix или Mac – важно иметь хороший дескриптор командной строки. Это особенно полезно, если вы занимаетесь веб-разработкой или администрированием, так как большая часть сети работает на серверах Linux, а большая часть удаленного управления сервером осуществляется из командной строки..

Sed, который входит почти в каждую Linux и Unix-подобную операционную систему, может помочь вам найти то, что вы ищете. Если у вас нет удобных инструментов поиска на настольном компьютере, это может стать необходимым. Это не так сложно учиться, и вы никогда не пожалеете, что знаете, как использовать этот классический инструмент.

Дальнейшее чтение и ресурсы

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

  • Введение и ресурсы по программированию на Linux: это глубокое погружение в программирование на Linux начинается с ядра, где все действия.
  • Ресурсы по программированию на Bash: начните с самой важной оболочки командной строки Unix.
  • Ресурсы Awk: Узнайте все о родственном инструменте sed Awk.

Окончательный список инструментов для веб-мастеров A-Z

Sed, Awk и Bash являются лишь частью большой коллекции инструментов, которые позволяют системным администраторам управлять операционными системами. Окончательный список инструментов для веб-мастеров A-Z окажет вам большую помощь в выполнении вашей работы..

Окончательный список инструментов для веб-мастеров A-Z
Окончательный список инструментов для веб-мастеров A-Z

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me