As tarefas de substituição podem ser feitas no 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 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 correspondência em uma string:
Como a parte de uma string pode ser substituída com base em um padrão de correspondência e $ PARTITION_COLUMN foi mostrado nesta seção deste tutorial. Mas esta variável funciona se o padrão corresponder a qualquer palavra no início ou meio da string. Não irá substituir o texto se o padrão corresponder à última palavra do texto.
Exemplo-1: Substitua tudo após a correspondência usando $ PARTITION_COLUMN
O comando a seguir pesquisará o caractere 'a' e a parte restante após 'a' será substituída pelo texto, “um site de blog popular”. $ PARTITION_COLUMN.* é usado para definir a parte restante após o caractere, 'a'.
$ echo "LinuxHint é um website" | sed "s / a $ PARTITION_COLUMN.* / um blog popular / "A seguinte saída aparecerá após a execução do comando. Aqui, 'um site' foi substituído por 'um site de blog popular'.
O seguinte padrão irá pesquisar a palavra 'rede'Na corda e substitua a parte restante pelo'rede'Pelo texto,'um site de blog popular'se a correspondência existe e'rede'Não é a parte da última palavra da string.
A seguinte saída aparecerá após a execução do comando. Aqui, 'website' é a última palavra da string e nenhuma substituição foi feita por este motivo.
Exemplo-2: Substitua tudo após a correspondência usando o padrão
O seguinte comando irá pesquisar a palavra 'bash'globalmente na string e substitui tudo pela palavra se a palavra existir na string. 'g'É usado aqui para pesquisa global.
$ echo "Eu gosto de programação bash" | sed "s / bash.* / script python / g "A seguinte saída aparecerá após a execução do comando. Aqui, 'bash' existe no meio da string, e a substituição foi feita.
Substitua tudo após a correspondência 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ído usando o 'sed'comando. 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á presente1999979 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 correspondência
O seguinte comando 'sed' irá procurar o número 1769994 no arquivo, e tudo com o número será substituído pelo texto, '1586844 está presente' se o número existir em qualquer linha do arquivo.
$ cat allendence.TXT$ sed "s / 1769994.* / 1586844 está presente / "atendimento.TXT
A seguinte saída aparecerá executando os comandos. Aqui, o número de busca existe na terceira linha do arquivo, e a substituição foi feita.
Exemplo -4: Substitua todo o conteúdo de várias linhas de um arquivo após a correspondência
O seguinte comando 'sed' 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.
comparecimento de $ cat.TXT$ sed "s / ^ 110.* $ PARTITION_COLUMN.* / Entrada inválida / "comparecimento.TXT
A seguinte saída aparecerá após a execução dos comandos. '110' existe em duas linhas do arquivo, e estas 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 correspondência
Os seguintes 'sed'comando mostra o uso de'c'para substituir tudo após a partida. Aqui, 'c'indica a mudança. O comando irá 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.
comparecimento de $ cat.TXT$ sed '/ present / c Esta linha foi substituída por' atendimento.TXT
A seguinte saída aparecerá após a execução dos comandos. A palavra 'presente' existe nas primeiras duas linhas do arquivo, e essas duas linhas foram substituídas pelo texto de substituição.
Exemplo-6: Substitua todo o conteúdo de uma linha de um arquivo com base no padrão inicial e final
Às vezes, é necessário substituir o texto com base no padrão inicial e final. O seguinte comando 'sed' mostra a forma de definir padrões de início e fim para substituir linhas de um arquivo. O comando irá procurar aquelas linhas no arquivo que começa com o número 110 e termina com a palavra 'ausente' e substitui tudo pela palavra 'substituído' onde os padrões correspondem.
comparecimento de $ cat.TXT$ sed -e 's / ^ 110.* ausente $ / substituído / g 'comparecimento.TXT
A seguinte saída 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. Portanto, 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 realizar 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 onde existe o padrão correspondente. Os usos de alguns caracteres de definição de padrões foram mostrados aqui, como '^' e '$'. Muitos outros caracteres existem para definir o padrão na expressão regular para fins de pesquisa. Espero que este tutorial ajude o leitor a saber o básico para substituir tudo em um arquivo após a partida.