file -i <arquivo> | grep "text/" ajuda em uma boa parte de arquivos....
-- -- Jeferson A. Cassol 2008/12/17 Julio C. Neves <[email protected]> > 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 <[email protected] <eldermarco%40gmail.com>> > > > 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] > > > [As partes desta mensagem que não continham texto foram removidas]
