Remove linhas
Publicado por Rafael Klock (última atualização em 22/07/2010)
[ Hits: 7.759 ]
Homepage: http://bredes.com.br/
Download Removelinhasv2 (versão 2)
Verifica em um determinado diretório todos os arquivos e exclui as linhas que você desejar. Exemplo:
$ Removelinhas.sh /home/rafael/teste cavalo
Esse comando irá verificar dentro da pasta "teste" arquivo por arquivo. Se o arquivo contiver a palavra cavalo, ele exclui apenas aquela linha.
O script vem com a opção --help caso precisem de ajuda.
DICA: Para executar o script de qualquer lugar, copiem o script para a pasta /bin:
$ sudo cp Removelinhas.sh /bin/Removelinhas
Espero que seja útil.
Falou!
Versão 2 - Enviado por Rafael Klock em 14/07/2010
Changelog: Nova versão, com algumas correções, e com opções de backup.
falow
#/bin/bash # HELP if [ "$1" = "--help" -o "$1" = "-h" ];then clear echo "" echo "" echo " ---> Remove Linhas V.01 <---" echo "" echo "USO: Removelinhas [DIR] [PALAVRA A SER EXCLUIDA]" echo "" echo "Ex: Removelinhas /home/user/teste/ zabuloni.silva" echo "exclui as linhas que contém "zabuloni.silva", em todos os arquivos da pasta teste" echo "" #echo "Erro n1: Provavelmente você esteja digitando um número em vez de um diretório." #echo "" echo "Email para contato: kklockk@gmail.com" echo "" exit 0 fi # VARIAVEIS contarqalt="0" contperm="0" contdir="0" linha="1" WC=$((1+`ls -1|wc -l`)) # IF que força passar dois parametros if [ "$1" = "" -o "$2" = "" ]; then echo "" echo "" echo "Tente: Removelinhas [DIRETORIO] [PALAVRA A SER EXCLUIDA]" echo "" echo "Ajuda: -> Removelinhas.sh --help" echo "" exit 0 fi # PROCESSO echo "" echo "O Processo foi iniciado. Aguarde." echo "" >> ~/logremovelinhas.txt echo "*************************************************" >> ~/logremovelinhas.txt echo "INICIO DO LOG: **( $2 )** Data: `date`" >> ~/logremovelinhas.txt echo "" >> ~/logremovelinhas.txt # GREP echo " # Comando grep $2 $1 #" >> ~/logremovelinhas.txt grep $2 $1/* >> ~/logremovelinhas.txt echo "" >> ~/logremovelinhas.txt echo " # Arquivos Alterados #" >> ~/logremovelinhas.txt # INICIO DO WHILE while [ $linha != $WC ]; do HEAD=`ls $1 -1| head -n $linha |tail -n 1` #teste se o HEAD for um arquivo, ele executa o algoritmo. test -f $HEAD if [ "$?" -eq "0" ]; then test -w $HEAD if [ "$?" -eq 0 ]; then cat $HEAD |grep "$2" -v > FILE.TMP cmp FILE.TMP $HEAD -s >> ~/logremovelinhas.txt if [ "$?" -eq "0" ]; then rm FILE.TMP else contarqalt=$(($contarqalt+1)) echo "Arquivo alterado: $HEAD" >> ~/logremovelinhas.txt rm $HEAD mv FILE.TMP $HEAD fi else contperm=$(($contperm+1)) echo "Não tem permissão: $HEAD" >> ~/logremovelinhas.txt fi else contdir=$(($contdir+1)) fi linha=$(($linha+1)) done test -e $1/FILE.TMP if [ "$?" -eq "0" ]; then rm $1/FILE.TMP fi echo "" >> ~/logremovelinhas.txt echo "Voce tem $contdir pastas." >> ~/logremovelinhas.txt echo "Arquivos alterados: $contarqalt" >> ~/logremovelinhas.txt linha=$(($linha-1)) >> ~/logremovelinhas.txt echo "Quantidade de arquivos verificados: $linha" >> ~/logremovelinhas.txt echo "Quantidade de arquivos que vc não tem permição: $contperm" >> ~/logremovelinhas.txt echo "Foi salvo um log no seguinte diretorio: ~/logremovelinhas.txt" >> ~/logremovelinhas.txt echo "" >> ~/logremovelinhas.txt echo "FIM DO LOG! DATA: `date`" >> ~/logremovelinhas.txt echo "**************************************************" >> ~/logremovelinhas.txt echo "" >> ~/logremovelinhas.txt echo "" >> ~/logremovelinhas.txt echo "" echo "Processo Finalizado! Log salvo em: ~/logremovelinhas.txt" echo ""
Criar usuários com ponto (nome.usuario) no Slackware
Pequeno sistema de backup (Rsync + SAMBA + Tar + FTP)
Cadastro de usuarios para proxy autenticado
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Desempenho abaixo do esperado - travadas e congelamento do sistema ope... (4)
Bash ao invés de Fish no CachyOS (1)
Linux rodando do hd externo ou ssd? (4)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta