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
.