sed примеры групп захвата
Операции по обработке текстовых файлов играют жизненно важную роль в повседневной жизни пользователя компьютера, поскольку работа с текстом распространена среди пользователей всех профессий. Linux и его дистрибутивы предоставляют множество инструментов и утилит командной строки для доступа к текстовым файлам и управления ими, таких как редактор по умолчанию, vim, nano. Эти инструменты помогают редактировать, удалять, заменять текст внутри текстовых файлов; однако пользователи должны открыть файл с помощью любого из этих редакторов и вручную внести необходимые изменения.
Есть еще один известный редактор, известный как «Stream Editor (sed)»; Утилита командной строки sed Ubuntu обеспечивает обширную поддержку для управления текстовыми файлами; этот инструмент входит в число лучших редакторов из-за расширенных функций, которые он предлагает при работе с текстовыми файлами. Причиной его популярности является однострочная командная операция: это означает, что он может управлять текстовыми файлами с помощью терминала, и пользователям не нужно открывать и редактировать текстовый файл вручную. Группа захвата относится к другой расширенной функции этого инструмента; функция группового захвата sed позволяет пользователю получить определенную часть текстового файла или строки. В этом подробном руководстве мы кратко описали концепцию группировки захвата, ее работу и использование с sed.
Во-первых, мы получим более глубокое представление о группах захвата, а затем приступим к их использованию с помощью sed:
Итак, начнем сегодняшний гайд:
Как работают группы захвата
Как обсуждалось выше, группы захвата являются определенной частью любой строки или текстового файла. За группами захвата может стоять одна из следующих целей:
-
Чтобы зафиксировать информацию
Манипулировать текстом для конкретного совпадения
Его можно использовать для получения точной информации путем поиска определенной части в текстовом файле, а также операции манипулирования, которые также могут выполняться для этого конкретного совпадения.
Как создать группы захвата с помощью команды sed в Ubuntu
Группы захвата в sed формируются путем применения круглых скобок к регулярным выражениям или операции, которую хочет выполнить пользователь. Например, чтобы создать группы захвата, вы должны поместить круглые скобки, такие как «\( » в начале и «\) » в конце определенного регулярного выражения:
Короче говоря, группа захвата используется для захвата определенной части строки, текстового файла, а затем выполнения операции над этой группой:
Следующие примеры демонстрируют использование групп захвата с помощью команды sed; примеры варьируются от базового до продвинутого уровня.
Захват одной группы с помощью команды sed
Написанная ниже команда захватит слово «Hello», а затем заменит слово, идущее после него («sed!»), на «Linuxhint». : Вы могли заметить, что группа захвата заключена в скобки выражения «\( » и «\) ».
Захват нескольких групп с помощью команды sed
Команда sed позволяет захватить несколько групп, а затем выполнить операцию над этой группой. Например, упомянутая ниже команда захватит и напечатает только выбранные группы. Замечено, что группы захвата можно вызвать, назначив им имя порядка:
В эхо-части этой команды помещаются три дистрибутива и родительский Linux, т.е. всего четыре записи: однако в команде sed мы вызвали только 1,2 и 3 группы в обратном порядке. Вывод показывает, что только три группы печатаются в обратном порядке, в то время как «Fedora» сохраняет исходное положение:
Захват групп сложных выражений
Допустим, у нас есть выражение, содержащее буквенно-цифровые ключевые слова; мы должны сделать группы, а затем распечатать их в любом (обратном/нормальном) порядке. Приведенная ниже команда показывает, что выражение содержит буквенно-цифровые ключевые слова; мы сделали группы из всех трех буквенно-цифровых слов, а затем отобразили эти слова в обратном порядке:
Примечание. Эту же команду можно использовать, заменив «\w\w*» на «[[:alnum:]_». ]\{1,\} ”:
Приведенная выше команда содержит группы захвата «\(\w\w*\)»; они работают для буквенно-цифровых ключевых слов. Вы можете выполнить приведенную выше команду, используя буквенно-цифровой класс символов в качестве группы захвата. Например, команда, упомянутая ниже, даст тот же результат, когда буквенно-цифровой класс символов используется в качестве группы захвата:
Заключение
Утилита командной строки Sed предоставляет подробное руководство по работе с текстовыми файлами с помощью терминала командной строки; с этим редактором может быть сложно работать, но когда вы углубитесь в детали, вы обнаружите, что его легко понять и применять. Кроме того, его расширенные функции облегчают процесс манипулирования текстовыми файлами и управления ими; как регулярные выражения и групповой захват. В этой статье мы определили концепцию групп захвата в sed; и обеспечил тщательное использование, обратившись к нескольким примерам. Группы захвата весьма полезны, особенно когда у вас есть очень большие текстовые файлы и вы хотите идентифицировать конкретное содержимое этих файлов.