Exemplos de sed de grupos de captura

Exemplos de sed de grupos de captura
As operações de manuseio de arquivos de texto desempenham um papel vital na vida cotidiana de um usuário de computador para lidar com o texto é comum entre os usuários de todas as profissões. O Linux e suas distritos fornecem uma variedade de ferramentas e utilitários de linha de comando para acessar e gerenciar arquivos de texto como o editor padrão, vim, nano. Essas ferramentas ajudam a editar, excluir, substituir, o texto dentro dos arquivos de texto; No entanto, os usuários precisam abrir o arquivo usando qualquer um desses editores e executar manualmente as alterações que devem ser feitas.

Há outro editor conhecido conhecido como “Editor de fluxo (sed)”; O utilitário de linha de comando sed do Ubuntu fornece um extenso suporte para gerenciar arquivos de texto; Esta ferramenta é classificada nos editores mais importantes por causa dos recursos avançados que oferece ao lidar com arquivos de texto. A razão por trás de sua popularidade é uma operação de comando de linha: o que significa que ele pode gerenciar arquivos de texto usando o terminal e os usuários não precisam abrir e editar manualmente qualquer arquivo de texto. O grupo de captura refere -se a outro recurso avançado dessa ferramenta; A funcionalidade de captura do grupo do SED permite que o usuário obtenha a parte específica de um arquivo de texto ou uma linha. Neste guia detalhado, descrevemos brevemente o conceito de agrupamento de captura, seu trabalho e uso com sed.

Em primeiro lugar, teremos uma visão profunda dos grupos de captura e depois prosseguiremos com o uso com o SED:

Então, vamos começar o guia de hoje:

Como os grupos de captura funcionam

Como discutido acima, os grupos de captura são a parte específica de qualquer linha ou arquivo de texto. Pode haver um dos seguintes propósitos por trás dos grupos de captura:

  • Para capturar a informação
  • Manipular o texto para correspondência específica

Ele pode ser usado para obter as informações de identificação, pesquisando a peça específica dentro de um arquivo de texto, bem como as operações de manipulação também podem ser executadas nessa correspondência específica.

Como fazer grupos de captura usando o comando sed no ubuntu

Os grupos de captura no SED são formados aplicando parênteses a expressões regulares ou a operação que o usuário deseja executar. Por exemplo, para fazer grupos de captura, você deve colocar parênteses como "\ (" no início e "\)" no final de uma expressão regular específica:

Em resumo, o Capture Group é usado para pegar a parte específica da linha, o arquivo de texto e, em seguida, executar uma operação nesse grupo:

Os próximos exemplos demonstram o uso de grupos de captura usando o comando sed; Exemplos variam de nível básico para avançado.

Capturando um único grupo usando o comando sed

O comando escrito abaixo capturará a palavra “Olá”E depois substitua a palavra que ocorre depois dela (“sed!") com "Linuxhint”: Você deve ter notado que o grupo de captura está fechado na expressão de parênteses“ \(" e "\)”.

$ eco olá sed! | sed 's/\ (hello \) sed!/\ 1 linuxhint/'

Captura vários grupos usando o comando sed

O comando sed permite capturar vários grupos e depois executar a operação nesse grupo. Por exemplo, o comando mencionado abaixo captura e imprimirá apenas grupos selecionados. Observa -se que os grupos de captura podem ser chamados atribuindo -lhes um nome de pedido:

Na parte do eco deste comando, três distribuições e um linux dos pais é colocado, i i.e., Total de quatro entradas: no entanto, no comando sed que chamamos apenas de 1,2 e 3 grupos em ordem inversa. A saída mostra que apenas três grupos são impressos em ordem inversa enquanto “Fedora”Mantém sua posição original:

$ eCHO Ubuntu Debian Linux Fedora | sed 's/\ (ubuntu \) \ (debian \) \ (linux \)/\ 3 \ 2 \ 1/'

Captura de grupos de expressões complexas

Digamos que temos uma expressão que contenha palavras -chave alfanuméricas; Temos que fazer grupos e depois imprimi -los em qualquer ordem (reversa/normal). O comando abaixo mostra que a expressão contém palavras -chave alfanuméricas; Fizemos grupos das três palavras alfanuméricas e depois exibimos essas palavras em uma ordem inversa:

Observação: O mesmo comando pode ser usado substituindo “\c\c*" com "[[: alnum:] _] \ 1, \”:

$ ECHO Linuxhint 123 Capture_Groups | sed 's/\ (\ w \ w*\) \ (\ w \ w*\) \ (\ w \ w*\)/\ 3 \ 2 \ 1/'

O comando acima contém grupos de captura “\ (\ w \ w*\)”; estes funcionam para palavras -chave alfanuméricas. Você pode executar o comando acima usando a classe de caracteres alfanuméricos como um grupo de captura. Por exemplo, o comando mencionado abaixo fornecerá a mesma saída quando a classe alfanumérica de caracteres for usada como um grupo de captura:

$ ECHO Linuxhint 123 Capture_Groups | sed \ 1, \ \)/\ 3 \ 2 \ 1/'

Conclusão

O utilitário de linha de comando sed fornece orientações detalhadas para lidar com arquivos de texto usando o terminal da linha de comando; Este editor pode ser difícil de operar, mas à medida que você se aproxima dos detalhes, você achará fácil de entender e aplicar. Além disso, suas funcionalidades avançadas facilitam o processo de manipular e gerenciar os arquivos de texto; como expressões regulares e captura de grupo. Neste artigo, derrotamos o conceito de grupos de captura no SED; e forneceu o uso completo, referindo -se a alguns exemplos. Os grupos de captura são bastante úteis, especialmente quando você tem arquivos de texto muito grandes e deseja identificar conteúdo específico desses arquivos.