como remover as linhas vazias/em branco dos arquivos que aparecem como @ do vi

como remover as linhas vazias/em branco dos arquivos que aparecem como @ do vi

quando eu abro arquivo pelo vi

como

vi file

Current partition replica assignment
@
@
@
@
@
{"version":1,"partitions":[{"topic")]
@
@
@
@
@
Proposed partition reassignment configuration

mas tento deletar esta linha vazia

como

sed -i 's/^ *//; s/ *$//; /^$/d; /^\s*$/d' file

ou

sed -i '/^$/d'  file

ou

sed -i '/^$/d' file

o arquivo ainda está com as linhas vazias

como remover as linhas vazias/em branco?

Responder1

Esses sãonãolinhas vazias, mas linhas muito longas para caber na tela, mesmo depois de agrupadas.

$ perl -e 'print "foo\n", "bar " x 4096' >/tmp/file
$ vim /tmp/file

foo
@
@
@
...

Isto é o quepadrãodiz:

No modo visual, se uma linha do buffer de edição (diferente da linha atual) não couber inteiramente nas linhas na parte inferior da tela que estão disponíveis para sua apresentação, o editor pode optar por não exibir nenhuma parte da linha . As linhas do display que não contêm texto do buffer de edição por esse motivo deverão consistir cada uma em um único caractere '@'.

Veja também a vimdocumentação do sobre a displayopção:

Quando nem "última linha" nem "truncar" são incluídos, uma última linha que não cabe é substituída por linhas "@".

Não os confunda com bytes nulos, que geralmente são mostrados como ^@(observe o acento circunflexo). Além disso, esse comportamento não é universal (não parece estar implementado no nvi).

Responder2

Funciona bem para mim. Provavelmente seu arquivo deveria ter valores nulos...

Ver:

vim -b file

Para converter para unix

dos2unix file

Responder3

Esses são bytes nulos, eu acredito. cat -A fileiria exibi-los como^@

trpode lidar com aqueles:

tr -d '\0' < file > file.new

informação relacionada