Pesquisa de site

Tutorial de comandos para expandir e desexpandir com exemplos


Neste guia, discutiremos dois comandos menos conhecidos do Linux, a saber, Expand e Unexpand com exemplos práticos. Para quem está se perguntando, o comando Expandir é usado para substituir caracteres TAB por caracteres ESPAÇO em arquivos e o comando Unexpand faz o oposto, ou seja, substitui caracteres ESPAÇO por caracteres TAB em um arquivo. Na verdade, o MS-DOS também possui um comando chamado “Expandir”, que é usado para expandir um arquivo compactado. Mas o comando Linux Expand simplesmente converte as tabulações em espaços. Esses dois comandos fazem parte do GNU coreutils e foram escritos por David MacKenzie.

Para fins de demonstração, usarei um arquivo de texto chamado “ostechnix.txt” ao longo deste guia.

Expandir exemplos de comandos

Como já foi dito, o comando Expandir substitui caracteres TAB em um arquivo por caracteres ESPAÇO.

Para converter tabulações em espaços em um arquivo, por exemplo "ostechnix.txt", e gravar o resultado na saída padrão usando o comando:

expand ostechnix.txt

Se você não quiser exibir o resultado na saída padrão, basta carregá-lo em outro arquivo como abaixo.

expand ostechnix.txt>output.txt

Também podemos converter tabulações em espaços, lendo a entrada padrão. Para fazer isso, basta executar o comando "expand" sem mencionar o nome do arquivo de origem:

expand

Basta digitar o texto e pressionar ENTER para converter tabulações em espaços. Pressione CTRL+C para sair.

Se você não deseja converter tabulações após não espaços em branco, use o sinalizador -i como abaixo.

expand -i ostechnix.txt

Também podemos ter guias separadas por um certo número de caracteres, e não 8 (o valor padrão):

expand -t=5 ostechnix.txt

Você pode até mencionar várias posições de tabulação separadas por vírgulas, como abaixo.

expand -t 5,10,15 ostechnix.txt

Ou,

expand -t "5 10 15" ostechnix.txt

Para obter mais detalhes, consulte as páginas de manual.

man expand

Exemplos de comandos não expandidos

O comando Unexpand fará o oposto do comando Expand. Ele converterá caracteres SPACE em caracteres TAB. Deixe-me mostrar alguns exemplos para aprender como usar o comando Unexpand.

Para converter espaços em branco (espaços, é claro) em um arquivo em tabulações e gravar a saída em stdout, faça:

unexpand ostechnix.txt

Se você quiser gravar a saída em um arquivo em vez de apenas exibi-la no stdout, use este comando:

unexpand ostechnix.txt>output.txt

Converta espaços em branco em tabulações, lendo a saída padrão:

unexpand

Por padrão, o comando Unexpand converterá apenas os espaços em branco iniciais. Se você deseja converter todos os espaços em branco, em vez de apenas os espaços em branco iniciais, use o sinalizador -a:

unexpand -a ostechnix.txt

Para converter apenas sequências iniciais de espaços em branco (observe que isso substitui -a):

unexpand --first-only ostechnix.txt

Tenha guias separadas por um certo número de caracteres, não 8 (ativa -a):

unexpand -t 5 ostechnix.txt

Da mesma forma, podemos mencionar várias posições de tabulação separadas por vírgulas como abaixo.

unexpand -t 5,10,15 ostechnix.txt

Ou,

unexpand -t "5 10 15" ostechnix.txt

Para obter mais detalhes, consulte as páginas de manual.

man unexpand

Leitura sugerida:

  • Tutorial do comando Fold com exemplos para iniciantes

Ao trabalhar em um grande número de arquivos, os comandos Expandir e Desexpandir podem ser muito úteis para substituir caracteres TAB indesejados por caracteres ESPAÇO e vice-versa.

Artigos relacionados