tr
é bom para este trabalho:
tr -d 0 <file
[:0:]
é inválido porque você precisa usar uma classe de caracteres entre [:
e :]
.
Eu tenho um arquivo:
1 2 5 6 8 0 0 0 0
1 2 5 6 8 0 0 0 0
1 2 5 6 8 0 0 0 0
1 2 5 6 8 0 0 0 0
Eu quero excluir todos os zeros:
1 2 5 6 8
1 2 5 6 8
1 2 5 6 8
1 2 5 6 8
Eu tentei tr -d [:0:]
. Infelizmente, não é para funcionar desta forma.
Acredito que sed
e perl fariam o trabalho, mas não sei exatamente como.
Eu pesquisei no google, se você acredita em mim, os resultados são mistos e relevantes, mas não consigo encontrar o caminho certo na primeira página.
tr
é bom para este trabalho:
tr -d 0 <file
[:0:]
é inválido porque você precisa usar uma classe de caracteres entre [:
e :]
.
[8]root@lab711:> cat file
1 2 5 6 8 0 0 0 0
1 2 5 6 8 0 0 0 0
1 2 5 6 8 0 0 0 0
1 2 5 6 8 0 0 0 0
[8]root@lab711:> sed 's/0//g' file
1 2 5 6 8
1 2 5 6 8
1 2 5 6 8
1 2 5 6 8
Para remover todos os zeros no arquivo, o comando a usar é sed 's/0//g' filename
o s
significa substituto. O /0
representa todos os 0s no arquivo. o //
significa substituir por nada. O g
significa globalmente
Tente
perl -pe 's/\s+0\b//g' <filename>
-p
faz um loop na linha de arquivos e imprime $_
-e
executar /g
Global (todas as ocorrências) s/\s+0\b//
está excluindo a série de pelo menos um espaço, seguida pelo caractere 0
, seguido pelo final da palavra. Ou, em substituição de lugar no arquivo,
sed -ibbak -e 's/\s\+0\b//g' <filename>
-i
no lugar -b.bak
faz backup (a extensão é .bac
) +
deve ter escape. \s
na regex é um espaço \b
na regex é o fim da palavra Espera que dê um pontapé inicial!