Duas pequenas soluções usando linha de comandos

Duas pequenas soluções usando linha de comandos

Bom, este é um post curto (mas que acredito que terá outros similares) com pequenas soluções interessantes usando linha de comandos – uma quase “bala de prata” pra quem usa Linux e Mac.

Como deletar vários sub-diretórios de uma só vez

Eu precisei fazer isso quando queria retirar os sub-diretórios do svn de uma pasta, ou seja, “desversionar” um projeto.

Só pra entender melhor, um projeto versionado pelo svn, segue o padrão da seguinte estrutura de diretórios:

./.svn
./app/.svn
./app/models/.svn
./config/.svn

O comando pra remover todos estes diretórios é:

find -name ".svn" -type d -exec rm -rvf {} \;

E significa: procure por tudo que tiver o nome .svn e que for um diretório e quando encontrar, execute um comando rm -rvf nele. Os paramêtros do rm significam: r – recursive (pra apagar diretórios), v – verbose (exibir as pastas que estão sendo apagadas), f – force (não pedir confirmação pra apagar).

Como extrair uma parte de um arquivo grande pra outro menor

Eu precisei fazer isso porque o arquivo do qual seria extraído uma parte era grande demais (1,5gb) e o vim e o gedit (ou qualquer outro) teriam dificuldade pra abri-lo.

Vamos supor então que eu tenha um arquivo chamado banco.dump com 20 milhões de linhas e eu queria extraír o conteúdo das linhas 12.000.000 até a linha 12.000.500 para um outro arquivo que vou chamar de novo.txt.

O comando pra fazer isso é:

cat -n banco.dump | head -n 12000500 | tail -n 500 > novo.txt

Explicando: o paramêtro passado no head é a linha final (12000500) do range desejado. E o 500 passado no tail é quantas linhas pra trás ele deve pegar. E pra finalizar é só jogar tudo pra dentro do novo.txt.

Comments are closed.