Jump to content
3 posts in this topic

Recommended Posts

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
  • Like 1
  • 3 weeks later...
×
×
  • Create New...