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.