Remove linhas
Publicado por Rafael Klock (última atualização em 22/07/2010)
[ Hits: 7.775 ]
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 ""
Raiz Quadrada (Square Root) para Bash
instalando o unbound dns no debian via script
Teste de atividade e funcionamento de portas através do Nmap
Claro 3g Sony Ericsson md300 script conexao REVISAO 3
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
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
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)
Pendrive não formata de jeito nenhum (4)
Problemas ao instalar o PHP (10)
Descompactar arquivos winrar no linux (9)
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (12)