Como substituir tudo após o padrão usando o comando 'sed'

Como substituir tudo após o padrão usando o comando 'sed'

Tarefas de substituição podem ser realizadas em Linux de maneiras diferentes. O comando 'sed' é uma das maneiras de fazer a tarefa de substituição. Este comando pode ser usado para substituir o texto em uma string ou um arquivo usando um padrão diferente. Como você pode substituir tudo após o padrão de correspondência usando o comando 'sed' é mostrado neste tutorial.

Substitua tudo após a partida em uma string:

Como a parte de uma string pode ser substituída com base em um padrão correspondente e $ partition_column foi mostrado nesta seção deste tutorial. Mas essa variável funciona se o padrão corresponder a qualquer palavra no início ou no meio da corda. Não substituirá o texto se o padrão corresponder à última palavra da string.

Exemplo 1: substitua tudo após a partida usando $ partition_column

O comando a seguir pesquisará o personagem 'a', e a parte restante após 'A' será substituída pelo texto, “um site popular de blog”. $ Partition_column.* é usado para definir a parte restante após o personagem, 'a'.

$ echo "Linuxhint é um site" | sed "s/a $ partition_column.*/Um site popular do blog/"

A saída a seguir aparecerá após a execução do comando. Aqui, 'um site' foi substituído por 'um site popular de blog'.


O seguinte padrão pesquisará a palavra 'rede'Na string e substitua a parte restante pelo'rede'pelo texto'um blog popular'Se a partida existir e'rede'Não é a parte da última palavra da string.

$ echo "Linuxhint é um site" | sed "s/web.* $ Partition_column.*/Um site popular do blog/"

A saída a seguir aparecerá após a execução do comando. Aqui, 'site' é a última palavra da string, e nenhum substituto foi feito por esse motivo.

Exemplo 2: substitua tudo após a correspondência usando o padrão

O comando a seguir pesquisará a palavra 'Bash'Globalmente na string e substitua tudo pela palavra se a palavra existir na string. 'g'É usado aqui para pesquisa global.

$ echo "Eu gosto de programação de bash" | sed "s/bash.*/script Python/g "

A saída a seguir aparecerá após a execução do comando. Aqui, 'Bash' existe no meio da corda, e a substituição foi feita.

Substitua tudo após a partida em um arquivo:

Todo o conteúdo de uma linha específica ou várias linhas ou linhas restantes de um arquivo após a correspondência pode ser substituída usando o 'sedComando. Crie um arquivo de texto chamado comparecimento.TXT com o seguinte conteúdo para testar os exemplos mostrados nesta seção.

comparecimento.TXT

1108885 está presente
1999979 está presente
1769994 está ausente
1105656 está ausente
1455999 está ausente

Exemplo -3: substitua todo o conteúdo de uma linha de um arquivo após a partida

O comando 'sed' a seguir pesquisará o número 17699994 no arquivo, e tudo com o número será substituído pelo texto, '1586844 estiver presente' se o número existir em qualquer linha do arquivo.

$ Cat Allendence.TXT
$ sed "s/1769994.*/1586844 está presente/"Participação.TXT

A saída a seguir aparecerá executando os comandos. Aqui, o número de pesquisa existe na terceira linha do arquivo, e a substituição foi feita.

Exemplo -4: substitua todo o conteúdo das várias linhas de um arquivo após a partida

O comando 'sed' a seguir mostra o uso da variável $ partition_column para substituir várias linhas do arquivo. O comando pesquisará '110' no início de cada linha do arquivo e substituirá tudo por '110' pelo texto 'entrada inválida', onde o texto correspondente será encontrado.

$ CAT ATENDENCIAMENTO.TXT
$ sed "s/^110.* $ Partition_column.*/Entrada inválida/"participação.TXT

A saída a seguir aparecerá após a execução dos comandos. '110' existe em duas linhas do arquivo, e elas foram substituídas pelo texto de substituição.

Exemplo 5: substitua todo o conteúdo de uma linha de um arquivo usando 'c' após a partida

A seguir 'sed'Comando mostra o uso de'c'Para substituir tudo depois da partida. Aqui, 'c'indica a mudança. O comando pesquisará a palavra 'presente'No arquivo e substitua tudo da linha pelo texto'Esta linha é substituída'Se a palavra existir em qualquer linha do arquivo.

$ CAT ATENDENCIAMENTO.TXT
$ sed '/presente/c Esta linha é substituída'.TXT

A saída a seguir aparecerá após a execução dos comandos. A palavra 'presente' existe nas duas primeiras linhas do arquivo, e essas duas linhas foram substituídas pelo texto substituindo.

Exemplo 6: substitua todo o conteúdo de uma linha de um arquivo com base no padrão de partida e final

Às vezes é necessário substituir o texto com base no padrão de partida e final. O comando 'sed' a seguir mostra a maneira de definir padrões iniciais e finais para substituir as linhas de um arquivo. O comando pesquisará essas linhas no arquivo que começa com o número 110 e termina com a palavra 'ausente' e substituirá tudo pela palavra 'substituído' onde os padrões correspondem.

$ CAT ATENDENCIAMENTO.TXT
$ sed -e 's/^110.*Ausente $/Substituído/G 'Participação.TXT

A saída a seguir aparecerá após a execução dos comandos. Aqui, a primeira e a quarta linhas começam com o número 110, mas a palavra 'ausente' existe apenas na quarta linha. Então, a quarta linha do arquivo foi substituída pelo texto de substituição.

Conclusão:

O comando 'sed' é uma ferramenta muito poderosa do Linux para executar diferentes tipos de tarefas relacionadas ao processamento de texto. A tarefa de substituição com base no padrão de correspondência é discutida neste tutorial usando vários tipos de padrões no comando 'sed'. $ Partition_column, 'c' e '.*'é usado neste tutorial para substituir tudo de uma linha do arquivo em que o padrão de correspondência existe. Os usos de alguns caracteres de padrões de definição mostraram aqui, como '^' e '$'. Muitos outros personagens existem para definir o padrão em expressão regular para fins de pesquisa. Espero que este tutorial ajude o leitor a conhecer o básico de substituir tudo de um arquivo após a partida.