exclui a primeira linha do arquivo somente se estiver em branco usando sed

5

Eu tenho uma solução para isso em awk :

awk '{if (NR==1 && NF==0) next};1' somefile

mas não conseguiu encontrar um que funcionasse em sed . Por exemplo,

sed -i.bak '/^$/{1,1d;}' somefile

acabamos excluindo a primeira linha em branco encontrada (não sou especialista em sed , então estava apenas experimentando coisas). A vantagem para sed neste caso é que eu seria capaz de fazer isso sem arquivos temporários. ou seja, no lugar.

    
por Levon 27.06.2012 / 16:09

2 respostas

11

Tente este:

sed '1{/^$/d}' file
    
por 27.06.2012 / 16:12
0

Uma alternativa:

sed '0,/^$/d' file

E como uma adivinhação em negrito, você pode querer excluir todas as linhas em branco antes da primeira linha (contendo quaisquer caracteres), se for o caso, podemos tentar o seguinte:

sed '1,/^$/d' file

    
por 28.06.2012 / 16:23