Tendo em vista a importância do comando sed; Nosso guia de hoje explorará várias maneiras de remover caracteres especiais usando o comando sed no ubuntu.
A sintaxe do comando sed está escrita abaixo:
Sintaxe
comando sed [options] [nome do arquivo]
Os caracteres especiais às vezes podem ser necessários do conteúdo escrito em um arquivo de texto, mas se forem usados desnecessariamente, eles deixarão o arquivo bagunçado e há chances de que o leitor não possa prestar atenção, resultando em um documento sem propósito.
Como usar o SED para remover caracteres especiais no Ubuntu
Esta seção descreverá brevemente as maneiras de remover caracteres especiais de um arquivo de texto usando sed; Depende do número de caracteres em seu arquivo que você deseja remover; Pode haver duas possibilidades enquanto remove os caracteres de um arquivo, ou você deseja remover um único personagem especial ou deseja remover vários caracteres de uma vez. A partir dessas possibilidades indicadas acima, estendemos esta seção a dois métodos que abordarão as duas possibilidades:
Método 1: Como remover um único caractere usando sed
Método 2: Como remover vários caracteres de uma só vez usando sed
O primeiro método aborda a primeira possibilidade, e a segunda possibilidade será discutida no método 2, vamos nos aprofundar um por um:
Método 1: Como remover um único personagem especial usando sed
Nós criamos um arquivo de texto “CH.TXT”Isso contém poucos caracteres especiais em diferentes linhas; O conteúdo dentro do arquivo é exibido abaixo:
$ CAT CH.TXT
Você pode notar que o conteúdo dentro “CH.TXTÉ difícil de ler; Por exemplo, queremos remover o caractere "#" do arquivo de texto; Para isso, temos que usar o seguinte comando para remover "#" de todo o documento:
$ sed 's/\#// g' ch.TXT
Além disso, se você deseja remover o personagem especial de uma linha específica; Para isso, você deve inserir o número da linha ao lado da palavra -chave “S”, pois o comando abaixo mencionado removerá “#” da linha número 3 apenas:
$ sed '3s/\#// g' ch.TXT
Método 2: Como remover vários caracteres de uma só vez usando sed
Agora temos outro arquivo “arquivo.TXT”Isso contém mais de um tipo de personagem e queremos removê -los em uma única vez. Neste método, a sintaxe é alterada um pouco do comando acima; Por exemplo, temos que remover cinco caracteres “#$%*@" de "arquivo.TXT”;
Em primeiro lugar, veja o conteúdo de “arquivo.TXT”Como as palavras são interrompidas por esses personagens;
$ CAT FILE.TXT
O comando declarado abaixo ajudará a remover todos esses personagens especiais de “arquivo.TXT”:
$ sed 's/[#$%*@] // g' arquivo.TXT
Aqui podemos dar outro exemplo, digamos que queremos remover apenas alguns caracteres de linhas específicas.
Criamos um novo arquivo e o conteúdo do “novo arquivo.TXT”É mostrado abaixo:
$ CAT NEWFILE.TXT
Para isso, temos o comando escrito que excluirá “#@" e "%*”Das linhas 2 e 3 de“novo arquivo.TXT”Respectivamente.
$ sed '2s/[#@] // g; 3s/[%*] // G 'NewFile.TXT
O comando sed usado nos métodos acima exibirá o resultado apenas no terminal, em vez de aplicar as alterações no arquivo de texto: para isso, devemos usar a opção "-i" do comando sed. Ele pode ser usado com qualquer comando sed e as alterações serão feitas no arquivo em vez de imprimir no terminal.
Conclusão
Aparentemente, o comando sed atua como um editor de texto usual, mas possui uma lista muito mais extensa de ações em comparação com outros editores. Você precisa apenas escrever um comando e as alterações serão feitas automaticamente; Esse recurso atrai os entusiastas do Linux ou os usuários que preferem o Terminal a GUI. Seguindo as funcionalidades vantajosas do SED; Nosso guia está focado em remover caracteres especiais do arquivo de texto. Se compararmos apenas esse recurso do comando sed com outros editores, você precisará procurar caracteres em todo o arquivo e removê -los um por um é um processo tedioso. Por outro lado, o SED executa a mesma ação escrevendo um comando de linha única no terminal.