FHaze Posted October 22, 2015 Share Posted October 22, 2015 Antes de ser um usuario OS X, utilizei por muito tempo o Slackware como meu sistema principal em casa, e Ubuntu no meu trabalho. As necessidades do dia a dia foram ocorrendo, e percebi que o shell bash é muito poderoso para essas tarefas, e até hoje, ele é meu app mais utilizado até mesmo no OS X. Estou escrevendo esse tópico para organizar uma variedade de comandos úteis para serem utilizados, pretendo ir atualizando eles com o tempo. Quantas linhas tem um arquivo: wc -l arquivo Qual o encoding do arquivo: (o segundo exemplo é para OS X ou BSD) file -bi arquivo file -I arquivo Converter o encoding de um arquivo para outro encoding: (o segundo exemplo é para OS X ou BSD) iconv -f iso-8859-1 -t utf-8 arquivo -o arquivoSaida iconv -f iso-8859-1 -t utf-8 arquivo > arquivoSaida Formata e identa um arquivo XML e escreve sua saída em outro arquivo: xmllint --format arquivo > arquivoSaida Mostrar o cabeçalho/rodapé do arquivo: (-n sendo o numero de linhas) head -n 10 arquivo tail -n 5 arquivo Procurar um texto/regexp em arquivo: (Uma dica que eu dou é de instalar o grep GNU caso esteja usando OS X, ele é muuuuuito mais rápido.) grep arquivo -e texto Procurar em todos arquivos de um diretório e todos seus subdiretórios por um texto/regexp: grep -r diretorio -e texto Imprimir apenas as linhas pares/impares do arquivo: awk "NR % 2 == 0" arquivo awk "NR % 2 == 1" arquivo Substituir texto/regexp de um arquivo com perl: (o segundo exemplo sendo recursivo, o terceiro escrevendo a saída em outro arquivo) cat arquivo | perl -pe "s/texto/texto2/" cat arquivo | perl -pe "s/texto/texto2/g" cat arquivo | perl -pe "s/texto/texto2/g" > arquivoSaida Corta colunas de um arquivo delimitado: (-d sendo o delimitador e -f os campos) cut -d ";" -f 1,2 arquivo cut -d ";" -f 2-6,9 arquivo > arquivoSaida Mescla a coluna de dois ou mais arquivos: (-d sendo o delimitador) paste -d arquivo1 arquivo2 arquivo3 Extrair todos zips de um diretório: (pode ser usado para outras coisas também, nesse caso executei o comando unzip para todos *.zip do diretório) for i in $(ls *.zip); do unzip $i; done Extrair todos zips de um diretório e seus subdiretórios: (também pode ser usado para outras coisas) for i in $(find . | grep -e \.zip$); do unzip $i; done 1 Link to comment Share on other sites More sharing options...
Allan Posted October 26, 2015 Share Posted October 26, 2015 Cara que contribuição, muito bom mesmo! Tenho muita vontade de um dia usar o Slackware, espero que com o que você postar com o tempo, minha curiosidade aumenta...hehe E de outros também Link to comment Share on other sites More sharing options...
FHaze Posted November 14, 2015 Author Share Posted November 14, 2015 kkkk, como eu disse Allan, esse bash me salva muito no meu trabalho. Pretendo sim adicionar mais coisas, só preciso reservar um tempo pra escrever. 1 Link to comment Share on other sites More sharing options...
Recommended Posts