Remove linhas
Publicado por Rafael Klock (última atualização em 22/07/2010)
[ Hits: 7.777 ]
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 ""
DNS dinâmico noip2 para systemd
Fluxbox: Wallpapers aleatórios
Geração de gráfico em shell script
Biblioteca de funções de manipulação de arquivos CSV para shell script
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
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (16)
Arch Linux - Guia para Iniciantes (2)
Problemas ao instalar o PHP (11)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)