Método 1: Como excluir todas as linhas vazias em um arquivo de texto usando sed
Antes de cavar a profundidade deste método, vamos entender a sintaxe para excluir linhas vazias usando sed:
Sintaxe
sed [options] '/^$/d' [nome do arquivo]
O '/^$/D'é a parte central deste comando; onde "^”O símbolo mostra que a exclusão deve ser executada desde o início, a partir da primeira linha; ““$”Representa que deve ir até a última linha do arquivo de texto e“d”Mostra que a exclusão está em andamento.
Esta seção o guiará a excluir todas as linhas em um arquivo de texto com a ajuda do Stream Editor (SED):
Nós criamos um arquivo de texto “excluir.TXT; Em primeiro lugar, obtenha o conteúdo deste arquivo usando “gato”Comando como dado abaixo e usamos“-n”Opção com ele, para que possamos obter os números de linha também:
Observa -se que existem várias linhas vazias e elas estão afetando a estética deste arquivo de texto e os leitores podem não prestar atenção a esse conteúdo.
$ cat -n exclua.TXT
Então, para evitar a situação mencionada acima; você deve remover as linhas vazias para otimizar o processo de leitura; O comando mencionado abaixo removerá todas essas linhas do “excluir.TXT" arquivo.
Agora você pode notar que as linhas vazias são lavadas e somente essas linhas são impressas que contêm algum texto, mas o resultado é exibido apenas no terminal enquanto o arquivo original permanece o mesmo:
$ sed '/^$/d' delete.TXT
Se você deseja remover as linhas vazias e atualizar o arquivo original também, você deve usar a opção no local “-eu”E o comando abaixo mencionado ajudará você a fazê-lo:
$ sed -i '/^$/d' delete.TXT
Método 2: Como excluir linhas vazias selecionadas em um arquivo de texto usando sed
A sintaxe para excluir linhas específicas em um arquivo de texto está escrito abaixo:
Sintaxe
sed [opções] '(número de linha) d' [nome do arquivo]
A parte principal da sintaxe na qual o comando depende é “(número de linha) D '”; Você tem que colocar o número exato de linha de linha vazia em “(número da linha)"E a carta"d”Mostra que o número da linha inserido será excluído:
Você pode excluir algumas linhas específicas dentro de um arquivo de texto usando o comando sed; Nós criamos um novo arquivo de texto “novo.TXT”Para esta seção. Por exemplo, a saída do comando abaixo mostra que o número da linha “2" está vazia:
$ cat -n newfile.TXT
E se você deseja executar o comando para excluir esta linha somente, você deve especificar o número da linha como fizemos no comando mencionado abaixo:
$ sed '2d' newfile.TXT
Você também pode excluir linhas consecutivas usando esse método; Por exemplo, o “novo.TXT”O arquivo tem 3 linhas vazias“4,5,6”Como pode ser visto na imagem abaixo:
$ cat -n novo.TXT
Remover essas três linhas consecutivas; você deve inserir “,”Entre os números de linha inicial e final, como pode ser visto no comando abaixo:
$ sed '4,6d' novo.TXT
Por fim, você também pode usar a opção “-eu”Para salvar as alterações permanentemente no arquivo, pois sem essa opção o comando sed imprime o resultado no terminal, pois modificamos o comando acima para usá -lo com“-eu”Opção:
$ sed -i '4,6d' novo.TXT
Conclusão
O Ubuntu suporta várias maneiras de manipular os dados em um arquivo de texto; Por exemplo, você pode usar o editor de texto padrão do Ubuntu, o editor de nano etc. No entanto, o utilitário de linha de comando sed do Ubuntu está liderando todos esses editores por causa de suas funcionalidades, como acessar o arquivo do terminal e fazer alterações sem abri -lo. Neste artigo, usamos o comando sed para remover as linhas vazias do arquivo de texto e descrevemos dois métodos para esta operação. ““Método 1”É adequado especificamente quando você tem centenas de linhas em um arquivo de texto e deseja excluir todas as linhas vazias de uma só vez: por outro lado,“Método 2”É adequado para excluir as linhas vazias em um pequeno documento onde você pode excluir as linhas um por um. No entanto, você precisa procurar linhas vazias, se quiser seguir “Método 2”: Então, se a comparação for feita entre os dois métodos,“Método 1"Supera"Método 2”Sobre a exclusão de linhas vazias.