Tente fazer isso:
sed '3{/^$/d;}' file
Observe as chaves.
Como excluo uma linha apenas se estiver em um número de linha especificado e ela corresponder ao padrão?
Por exemplo:
d ); 3 ); ^$ ); A seguinte sintaxe:
cat file | sed '3 /^$/d'
Retorna o seguinte erro:
sed: -e expression #1, char 3: unknown command: '/'
Como user000001 respondeu, sed '3{/^$/d;}' file é bom o suficiente, mas só mostrará essa saída. Se você quiser modificar o arquivo, e seu sed é o GNU sed , você pode usar sed -i '3{/^$/d}' file (para GNU sed , o ; antes de } também pode ser omitido aqui).
'-i[SUFFIX]' '--in-place[=SUFFIX]' This option specifies that files are to be edited in-place. GNU 'sed' does this by creating a temporary file and sending output to this file rather than to the standard output.(1).
Com o FreeBSD / OS / X sed , use sed -i '' '3{/^$/d;}' file .