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
d
exclui as linhas selecionadas.