Remove linhas
Publicado por Rafael Klock (última atualização em 22/07/2010)
[ Hits: 8.067 ]
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 ""
diMail - envia e-mail com um front do dialog
Bloquear o DHCP de dispositivos móveis
iptables geral com roteamento de portas
Retra de iptables para DMZ na porta 80
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Instalando COSMIC no Linux Mint
Turbinando o Linux Mint: o poder das Nemo Actions
Inteligência Artificial no desenvolvimento de software: quando começar a usar?
[Resolvido] Algo deu errado ao abrir seu perfil
Usando o VNSTAT para medir o seu consumo de internet
Habilitando clipboard manager no ambiente COSMIC
Problema com som no laptop (5)
Quando vocês pararam de testar distros? (11)
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (2)









