"O termo sed é uma abreviação de Editor de fluxo. Em Unix/Linux, o sed Comando analisa e transforma fluxos (textos, na maioria dos casos). É uma ferramenta de linha de comando que vem pré-instalada em todos os sistemas Unix/Linux.”
Neste guia, exploraremos o G opção em sed.
Uso básico de sed
O uso mais comum do comando sed é encontrar e substituir o conteúdo em um determinado fluxo. A estrutura de comando é a seguinte:
$ sed 's ///'
Dê uma olhada no exemplo a seguir:
$ echo "The Quick Brown Fox" | sed 's/the/the/'
Aqui,
Se você está tentando editar um arquivo de texto, o SED não alterará o conteúdo do arquivo por padrão. Isso é para evitar perda acidental de dados. Para alterar o conteúdo de um arquivo diretamente, você precisa executar sed com a edição no local.
A opção G em sed
Ao encontrar e substituir, o comportamento padrão de sed é encerrar suas ações ao encontrar a primeira instância. O exemplo a seguir demonstra esse comportamento perfeitamente:
$ echo "o the the" | sed 's/the/the/'
Aqui,
Para instruir o SED para transformar todas as instâncias correspondentes do padrão fornecido, temos que adicionar a opção G. Atualize o comando da seguinte forma:
$ echo "o the the" | sed 's/o/o/g'
Agora, todas as instâncias de "the" são alteradas para "o" adequadamente.
A opção G em sed
Finalmente chegamos ao ponto de foco deste guia. Enquanto o g a opção é aplicável à substituição de texto, o G a opção é usada para um propósito completamente diferente.
Usando o G Opção, podemos anexar espaço para manter espaço para padrão. Em termos simples, podemos adicionar novas linhas antes/depois do padrão de correspondência.
Para demonstração, criei um arquivo de texto de amostra teste.TXT:
gato << EOF > teste.TXT
o
rápido
marrom
o
raposa
Eof
Espaçamento adicional
Agora podemos executar várias operações no espaçamento do arquivo. Por exemplo, para dobrar o espaço do arquivo, use o seguinte comando:
$ sed g teste.TXT
Da mesma forma, podemos triplicar o espaço do arquivo:
$ sed 'g; g' teste.TXT
Aqui,
Removendo espaçamento adicional
Também podemos usar o G Opção para excluir todas as linhas em branco e espaço duplo:
$ sed 'g; g' teste.txt | sed '/^$/d; g'
Inserindo linhas em branco antes/depois das partidas
Podemos especificar um padrão usando expressão regular e dizer a SED para adicionar uma linha em branco antes/depois dela.
O primeiro exemplo será adicionar uma linha em branco abaixo do padrão de correspondência:
$ sed '/the/g' teste.TXT
O próximo exemplo será adicionar uma linha em branco acima do padrão de correspondência:
$ sed '/the/x; p; x;' teste.TXT
Finalmente, podemos combinar os dois para inserir linhas em branco ao redor do padrão de correspondência:
$ sed '/the/x; p; x; g;' teste.TXT
Pensamentos finais
Neste guia, demonstramos com sucesso várias maneiras de usar o G opção com sed Para adicionar espaços no texto. Essa técnica pode ser útil em várias situações, por exemplo, destacando linhas específicas em um log de depuração.
Uma enorme vantagem do sed é seu suporte regular de expressão. Saiba mais sobre sed com regex. O comando sed também pode ser facilmente integrado ao script de shell.
Computação feliz!