sed '/./,$!d'
Da primeira linha que contém um caractere (em branco ou não) até o final do arquivo - negate (que significa do começo do arquivo para a linha antes da primeira linha que contém um caractere) - delete. / p>
Isso exclui as linhas principais vazias , não as linhas em branco. Para excluir linhas em branco iniciais (linhas que estão vazias ou contêm apenas caracteres de espaço em branco), digamos '/\S/,$!d' .
Leia "Sed, uma introdução e tutorial" no link . Em seguida, leia o manual de referência no link .
Resumindo:
-
A forma geral de um comando
sedé o comando [seletor] [negação] [flags] (colchetes indicam partes opcionais) -
O seletor, se presente, seleciona as linhas nas quais o comando se aplica
-
Se
!aparecer, o seletor será negado, ou seja, o comando se aplicará às linhas que não correspondem ao seletor. -
Se nenhum seletor estiver presente, o comando se aplica a todas as linhas.
-
Um seletor pode selecionar uma linha (por número) ou um conjunto de linhas (por expressão regular) ou as linhas entre uma linha inicial (por número ou expressão regular) e uma linha final (por número ou regular expressão).
-
Em nosso caso, o seletor é
/./,$, o que significa de a primeira linha encontrada que corresponde a/./(ou seja, contém pelo menos um caractere) a o final do arquivo ($é usado como um número de linha e significa a última linha no arquivo). -
É negado por
!, para que o comando se aplique às linhas desde o início do arquivo até a linha antes da primeira linha corresponder a/./. -
O comando
dexclui as linhas selecionadas.