Remove linhas
Publicado por Rafael Klock (última atualização em 22/07/2010)
[ Hits: 7.831 ]
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 ""
Atualizar repositório no Linux desabilitando a hibernação do sistema
Atualizando páginas automaticamente com Lynx
Pesquisa Binária usando Bash-Shell
Monitore vários servidores ao mesmo tempo com Apache + shellscript
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
Slackpkg+ (Slackpkg Plus) está de volta!
Como dividir duas janelas igualmente e lado-a-lado na sua tela
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Minha rede tem um espaço invisível que não dá pra digitar o nome da re... (1)
Pedagogia no brasil não passa de alfabetização por m4sturbação mental ... (2)
compilação samba 4.22 rock linux 9.5 (3)
Erro de segmentação «Segmentation fault (core dumped)» ao retornar obj... (7)