shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Saber se um arquivo é um arquivo texto.


From: Julio C. Neves
Subject: Re: [shell-script] Saber se um arquivo é um arquivo texto.
Date: Wed, 17 Dec 2008 15:13:44 -0200

Fala Elder,
troque o cat por strings. Se vc fizer strings arq.txt, ele te lista arq.txt
como se vc tivesse feito um cat, mas se vc fizer strings /bin/ls, ele só
listará alguns trechos legíveis, sem 'empepinar' o monitor.
-- 
Abração,
Julio
*Cursos de Shell e Zenity nos finais de semana:
- Em SP ligue (11) 2125-4747;
- Em DF ligue (61) 3223-3000;
- Turmas fechadas em outras cidades ligue (21) 8112-9988
*

2008/12/16 Elder Marco <address@hidden>

>   Olá,
>
> Bom, num dos meus primeiros scripts, eu decidi escrever algo que pudesse me
> ser útil. Não raro, dou um cat em um arquivo texto para saber seu conteúdo,
> mas preciso usar algumas opções do cat (como mostrar o número da linha) ou
> conectar a saída do comando para o less. De vez em quando eu também dou um
> vacilo e acabo dando um cat em um arquivo que não é texto ... :(
>
> Então decidi fazer um script que recebe um ou dois parâmetros. Se receber
> dois, o primeiro será um parâmetro para o comando cat ou um comando que
> envia a saída dele para o lesse e o segundo será o arquivo que deve ser
> lido. O que eu preciso saber, além de outras coisas, é se esse arquivo é ou
> não um arquivo texto. Primeiramente pensei em inserir algo da seguinte
> maneira:
>
> if [ ! -n $(file $ARQUIVO | grep text ) ; then
> echo "$ARQUIVO não é um arquivo texto "
> exit 1
> fi
>
> (eu não fechei o if acima porque esse bendito teclado aqui está
> desconfigurado no momento em que escrevo e não consigo achar a tecla que
> fecha os colchetes!)
>
> No entanto, eu percebi que isso nem sempre pode funcionar pois o comando
> file pode lidar com algum arquivo texto e não necessariamente ter um "text"
> na sua saída (por exemplo, o /etc/sudoers no Fedora 8). E convenhamos, isso
> é muita gambiarra não é? :-)
>
> Uma opção que achei útil --- e é aqui que está a minha dúvida --- é a opção
> -f do comando test que verifica se um arquivo é um arquivo regular.
>
> O que significa exatamente um arquivo ser um arquivo regular? Eu poderia
> utilizar isso para saber se o arquivo é ou não um arquivo texto (e portanto
> poderia ser lido com o cat)? Ou existe uma forma mais elegante de saber
> isso?
>
> Abs
>
> --
> Elder Marco
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]