Eu tenho alguns arquivos de texto que uso para fazer anotações - apenas texto sem formatação, geralmente apenas usando cat >> file
. Ocasionalmente, uso uma ou duas linhas em branco (basta retornar - o caractere de nova linha) para especificar um novo assunto / linha de pensamento. No final de cada sessão, antes de fechar o arquivo com Ctrl+ D, normalmente adiciono lotes (5 a 10) de linhas em branco (tecla de retorno) apenas para separar as sessões.
Obviamente, isso não é muito inteligente, mas funciona para mim para esse fim. Eu faço no entanto acabar-se com lotes e lotes de linhas em branco desnecessários, por isso estou procurando uma maneira de remover (a maior parte) as linhas extras. Existe um comando Linux (recortar, colar, grep, ...?) Que possa ser usado diretamente com algumas opções? Como alternativa, alguém tem uma idéia para um script sed, awk ou perl (bem em qualquer linguagem de script, na verdade, embora eu prefira sed ou awk) que faça o que eu quero? Escrever algo em C ++ (o que eu realmente poderia fazer) parece apenas um exagero.
Caso 1: O que eu preciso é de um script / comando que remova mais de duas (3 ou mais) linhas em branco consecutivas e as substitua por apenas duas linhas em branco. Embora seria bom se também pudesse ser ajustado para remover mais de uma linha (2 ou mais) e / ou substituir várias linhas em branco por apenas uma linha em branco.
Caso 2: Eu também poderia usar um script / comando que removeria uma única linha em branco entre duas linhas de texto, mas deixaria várias linhas em branco como estão (embora a remoção de uma das linhas em branco também seja aceitável).
vim
e substituía as linhas em branco por uma linha em branco).