p {margin-right: 50px;}p {margin-left: 50px;}p { text-align: justify; }p { text-indent: 30px; } Para desenvolver um software e necessario desenvolver ferramentas de testes e assim, mais softwares sao desenvolvidos. Ao executar o comando find procurando arquivos *.JPG e *.jpg, obtem-se como resposta 633 arquivos. O problema era o fato do software informar 579 arquivos de imagens. A diferenca e 54 unidades. O primeiro passo e comparar as duas listagens de arquivos e entender o que torna o conteudo distinto. Como o pen-drive e do tipo VFAT, nao tinha permissao para executar scripts, entao a solucao foi usar a linha de comando e direcionar a saida para um arquivo: $ ls -R | grep '\./' | cut -c 3- | sed 's/://g' > ~/programas/arq2.txt Em seguida foi feita uma ordenacao no arquivo arq2.txt que a saida foi para arq633.txt: $ cat arq2.txt | sort > arq633.txt O arquivo arq633.txt contem 633 linhas e cada uma delas o nome do arquivo *.jpg ou *.JPG O arquivo com as 579 linhas foi gerado pelo software que estou desenvolvendo. E preciso usar o editor vim para eliminar colunas como data, tamanho do arquivo etc. O script que levanta quais sao os arquivos que diferem esta abaixo. #!/bin/bashls repeated_files.txt > /dev/nullif [ $? = 0 ] then rm repeated_files.txtfifor i in `seq 633` do arq633=`head -n $i arq633.txt | tail -n 1` freq=`grep "$arq633" arq633.txt | wc -l | awk '{printf "%s\n",$1}'` if [ $freq != 1 ] then grep ^"$arq633" arq633.txt >> repeated_files.txt fi donecat repeated_files.txt | sort | uniq Comento sobre a linha grep ^"$arq633" arq633.txt >> repeated_files.txt Sem o circunflexo (^) nao ha distincao para a ocorrencia 1.jpgbaixa11.jpgbaixa1.jpgCIMG3701.jpgCIMG3711.jpgCIMG3751.jpgCIMG4531.jpg porque o grep encontra "1.jpg" em todos os arquivos. Executando o script obtem-se a seguinte saida: 1.jpgDSC07857.JPGDSC07858.JPGDSC07859.JPGDSC07861.JPGDSC07862.JPGDSC07863.JPGDSC07864.JPGDSC07865.JPGDSC07866.JPGDSC07867.JPGDSC07868.JPGDSC07869.JPGDSC07870.JPGDSC07871.JPGDSC07872.JPGDSC07873.JPGDSC07874.JPGDSC07875.JPGDSC07876.JPGDSC07877.JPGDSC07878.JPGDSC07879.JPGDSC07880.JPGDSC07881.JPGDSC07882.JPGDSC07883.JPGDSC07884.JPGDSC07885.JPGDSC07886.JPGDSC07887.JPGDSC07888.JPGDSC07889.JPGDSC07890.JPGDSC07891.JPGDSC07892.JPGDSC07893.JPGDSC07894.JPGDSC07895.JPGDSC07896.JPGDSC07897.JPGDSC07898.JPGDSC07899.JPGDSC07900.JPGDSC07901.JPGDSC07902.JPGDSC07903.JPGDSC07904.JPGDSC07905.JPGDSC07906.JPGDSC07907.JPGDSC07908.JPGDSC07909.JPGDSC07910.JPG Que sao 54 arquivos JPG. Conclusao: O software processa 633 imagens, mas como ha nomes repetidos, 54 sao sobreescritos mostrando 579 arquivos JPG/jpg. Caso encerrado! p {margin-right: 50px;}p {margin-left: 50px;}p { text-align: justify; }p { text-indent: 30px; } O fato de desenvolver textos HTML tanto para Linux como para Windows tem causado o incoveniente de exibir os caracteres acentuados de forma errada porque os sistemas operacionais usam codificacoes distintas. A melhor forma de adequar a ambas as situacoes e substituir os caracteres problematicos por codigos que ao serem interpretados pelo navegador sao traduzidos pela combinacao de vogais acentuadas ou cedilha. O codigo abaixo faz a substituicao global destes caracteres. Desta forma, basta redigir o texto normalmente e apos a execucao do script o texto esta pronto para ser visualizado por qualquer navegador. Observacao: E preciso juntar o "&" com o que vem em seguida, pois se fosse feito no editor seria interpretado e desta forma nao seria exibido o codigo HTML.#/bin/bash# Fonte dos caracteres especiais: http://www.lsi.usp.br/~help/html/iso.htmlif [ $# != 1 ] then echo Digite $0 arq exit else sed 's/A/\& Aacute;/g' $1 > $$ sed 's/a/\& aacute;/g' $$ > $1 sed 's/A/\& Acirc;/g' $1 > $$ sed 's/a/\& acirc;/g' $$ > $1 sed 's/A/\& Agrave;/g' $1 > $$ sed 's/a/\& agrave;/g' $$ > $1 sed 's/A/\& Atilde;/g' $1 >