Estações de trabalho on-line OnWorks Linux e Windows

Logotipo

Hospedagem online grátis para estações de trabalho

<Anterior | Conteúdo | Próxima>

fmt - um formatador de texto simples

O fmt programa também dobra texto e muito mais. Ele aceita arquivos ou entrada padrão e executa a formatação de parágrafos no fluxo de texto. Basicamente, ele preenche e une linhas no texto, preservando as linhas em branco e o recuo.

Para demonstrar, vamos precisar de algum texto. Vamos tirar um pouco do fmt página de informações:


`fmt 'lê os argumentos FILE especificados (ou entrada padrão se nenhum for fornecido) e escreve na saída padrão.


Por padrão, linhas em branco, espaços entre palavras e recuo são

`fmt 'lê os argumentos FILE especificados (ou entrada padrão se nenhum for fornecido) e escreve na saída padrão.


Por padrão, linhas em branco, espaços entre palavras e recuo são


preservado na saída; linhas de entrada sucessivas com recuo diferente não são unidas; as guias são expandidas na entrada e introduzidas na saída.


`fmt 'prefere quebrar linhas no final de uma frase e tenta evitar quebras de linha após a primeira palavra de uma frase ou antes da última palavra de uma frase. Uma "quebra de frase" é definida como o final de um parágrafo ou uma palavra que termina em qualquer um de `.?! ', Seguido por dois espaços ou final de linha, ignorando quaisquer parênteses ou aspas. Como o TeX, `fmt 'lê" parágrafos "inteiros antes de escolher quebras de linha; o algoritmo é uma variante daquele fornecido por Donald E. Knuth e Michael F. Plass em "Quebrando Parágrafos em Linhas",

`Software - Practice & Experience '11, 11 (novembro de 1981), 1119-1184.

preservado na saída; linhas de entrada sucessivas com recuo diferente não são unidas; as guias são expandidas na entrada e introduzidas na saída.


`fmt 'prefere quebrar linhas no final de uma frase e tenta evitar quebras de linha após a primeira palavra de uma frase ou antes da última palavra de uma frase. Uma "quebra de frase" é definida como o final de um parágrafo ou uma palavra que termina em qualquer um de `.?! ', Seguido por dois espaços ou final de linha, ignorando quaisquer parênteses ou aspas. Como o TeX, `fmt 'lê" parágrafos "inteiros antes de escolher quebras de linha; o algoritmo é uma variante daquele fornecido por Donald E. Knuth e Michael F. Plass em "Quebrando Parágrafos em Linhas",

`Software - Practice & Experience '11, 11 (novembro de 1981), 1119-1184.


Vamos copiar este texto em nosso editor de texto e salvar o arquivo como fmt-info.txt. Agora, digamos que desejamos reformatar este texto para caber em uma coluna de cinquenta caracteres de largura. Poderíamos fazer isso processando o arquivo com fmt e -w opção:


[me @ linuxbox ~] $ fmt -w 50 fmt-info.txt | cabeça

`fmt 'lê os argumentos FILE especificados (ou entrada padrão se

nenhum é fornecido) e grava na saída padrão.


Por padrão, linhas em branco, espaços entre palavras e recuo são

preservado na saída; linhas de entrada sucessivas com recuo diferente não são unidas; as guias são expandidas na entrada e introduzidas na saída.

[me @ linuxbox ~] $ fmt -w 50 fmt-info.txt | cabeça

`fmt 'lê os argumentos FILE especificados (ou entrada padrão se

nenhum é fornecido) e grava na saída padrão.


Por padrão, linhas em branco, espaços entre palavras e recuo são

preservado na saída; linhas de entrada sucessivas com recuo diferente não são unidas; as guias são expandidas na entrada e introduzidas na saída.


Bem, esse é um resultado estranho. Talvez devêssemos realmente ler este texto, uma vez que explica o que está acontecendo:

Por padrão, as linhas em branco, os espaços entre as palavras e o recuo são preservados na saída; linhas de entrada sucessivas com recuo diferente não são unidas; as guias são expandidas na entrada e introduzidas na saída.

então, fmt está preservando o recuo da primeira linha. Felizmente, fmt fornece uma opção para corrigir isso:



[me @ linuxbox ~] $ fmt -cw 50 fmt-info.txt

`fmt 'lê os argumentos FILE especificados (ou entrada padrão se nenhum for fornecido) e escreve na saída padrão.

[me @ linuxbox ~] $ fmt -cw 50 fmt-info.txt

`fmt 'lê os argumentos FILE especificados (ou entrada padrão se nenhum for fornecido) e escreve na saída padrão.


Por padrão, as linhas em branco, os espaços entre as palavras e o recuo são preservados na saída; linhas de entrada sucessivas com recuo diferente não são unidas; as guias são expandidas na entrada e introduzidas na saída.


`fmt 'prefere quebrar linhas no final de uma frase e tenta evitar quebras de linha após a primeira palavra de uma frase ou antes do

última palavra de uma frase. Uma "quebra de frase" é definida como o final de um parágrafo ou uma palavra que termina em '.?!', Seguida por dois espaços ou final de linha, ignorando qualquer

entre parênteses ou citações. Como TeX,

`fmt 'lê" parágrafos "inteiros antes de escolher quebras de linha; o algoritmo é uma variante de

aquele dado por Donald E. Knuth e Michael F. Plass em "Quebrando Parágrafos em Linhas",

`Software - Prática e Experiência '11, 11

(Novembro de 1981), 1119-1184.

Por padrão, as linhas em branco, os espaços entre as palavras e o recuo são preservados na saída; linhas de entrada sucessivas com recuo diferente não são unidas; as guias são expandidas na entrada e introduzidas na saída.


`fmt 'prefere quebrar linhas no final de uma frase e tenta evitar quebras de linha após a primeira palavra de uma frase ou antes do

última palavra de uma frase. Uma "quebra de frase" é definida como o final de um parágrafo ou uma palavra que termina em '.?!', Seguida por dois espaços ou final de linha, ignorando qualquer

entre parênteses ou citações. Como TeX,

`fmt 'lê" parágrafos "inteiros antes de escolher quebras de linha; o algoritmo é uma variante de

aquele dado por Donald E. Knuth e Michael F. Plass em "Quebrando Parágrafos em Linhas",

`Software - Prática e Experiência '11, 11

(Novembro de 1981), 1119-1184.


Muito melhor. Adicionando o -c opção, agora temos o resultado desejado.

fmt tem algumas opções interessantes:


Tabela 21-3: Opções fmt


Descrição da Opção

Descrição da Opção

-c Operar em margem da coroa modo. Isso preserva o recuo das duas primeiras linhas de um parágrafo. As linhas subsequentes são alinhadas com o recuo da segunda linha.


imagem

-p corda Formate apenas as linhas que começam com o prefixo corda. Após a formatação, o conteúdo de corda são prefixados a cada linha reformatada. Esta opção pode ser usada para formatar texto nos comentários do código-fonte. Por exemplo, qualquer linguagem de programação ou arquivo de configuração que usa um caractere “#” para delinear um comentário pode ser formatado especificando -p '#' para que apenas os comentários sejam formatados. Veja o exemplo abaixo.


imagem

-s Modo Split-only. Neste modo, as linhas só serão divididas para caber na largura da coluna especificada. Linhas curtas não serão unidas para preencher linhas. Este modo é útil ao formatar texto como código onde a junção não é desejada.


imagem

-u Executa espaçamento uniforme. Isso se aplicará à tradicional “máquina de escrever-


imagem


imagem

estilo ”formatação do texto. Isso significa um único espaço entre as palavras e dois espaços entre as frases. Este modo é útil para remover a “justificação”, ou seja, texto que foi preenchido com espaços para forçar o alinhamento nas margens esquerda e direita.


imagem

-w largura Formate o texto para caber em uma coluna largura caracteres de largura. O padrão é 75 caracteres. Observação: fmt na verdade, formata as linhas um pouco mais curtas do que a largura especificada para permitir o equilíbrio da linha.


imagem


O -p opção é particularmente interessante. Com ele, podemos formatar partes selecionadas de um arquivo, desde que todas as linhas a serem formatadas comecem com a mesma sequência de caracteres. Muitas linguagens de programação usam o sinal de libra (#) para indicar o início de um comentário e, portanto, podem ser formatadas usando esta opção. Vamos criar um arquivo que simula um programa que usa comentários:



[me @ linuxbox ~] $ cat> fmt-code.txt

# Este arquivo contém código com comentários.


# Esta linha é um comentário.

# Seguido por outra linha de comentário.

# E outro.


Por outro lado, é uma linha de código. E outra linha de código.

E outro.

[me @ linuxbox ~] $ cat> fmt-code.txt

# Este arquivo contém código com comentários.


# Esta linha é um comentário.

# Seguido por outra linha de comentário.

# E outro.


Por outro lado, é uma linha de código. E outra linha de código.

E outro.


Nosso arquivo de amostra contém comentários que começam com a string “#“ (a # seguido por um espaço) e linhas de “código” que não começam. Agora, usando fmt, podemos formatar os comentários e deixar o código intocado:



[me @ linuxbox ~] $ fmt -w 50 -p '#' fmt-code.txt

# Este arquivo contém código com comentários.


# Esta linha é um comentário. Seguido por outro

# linha de comentário. E outro.


Por outro lado, é uma linha de código. E outra linha de código.

E outro.

[me @ linuxbox ~] $ fmt -w 50 -p '#' fmt-code.txt

# Este arquivo contém código com comentários.


# Esta linha é um comentário. Seguido por outro

# linha de comentário. E outro.


Por outro lado, é uma linha de código. E outra linha de código.

E outro.


Observe que as linhas de comentário adjacentes são unidas, enquanto as linhas em branco e as linhas que não começam com o prefixo especificado são preservadas.


Top OS Cloud Computing na OnWorks: