Apagando 2 linhas do fim de um arquivo

Publicado por Rafael Augusto Cucharo 13/10/2004

[ Hits: 7.582 ]

Download linha




Tentei durante 3 dias fazer com
que... com 1 comando, eu pudesse
apagar 2 linhas de um determinado
arquivo.. CONSEGUI!!! Só que,
ainda está bem simples, pois nao
tive tempo de aprimorar. Depois,
com o uso do echo e do read será
possivel fazer com que leia um
numero, e o apague do arquivo.

  



Esconder código-fonte

# Criado por Rafael Augusto Cucharo
# rafael@rdnet.com.br
if [ -z $2 ] ; then
        echo Usage: ./linha arquivo arquivo.novo
        echo Onde arquivo eh o arquivo a ser lido
        echo e arquivo.novo eh o arquivo criado com
        echo 2 linhas a menos.
        exit 1
fi

file="$1"
file2="$2"
wc=`cat $file | wc -l`
wc2=`expr $wc - 2`
head -n $wc2 $file > $file2

Scripts recomendados

Criação de unidades criptografadas

Configurando a raiz do seu servidor apache facilmente.

Montagem fácil de pendrive

Alteração de Senha do Mysql (sem saber a senha anterior).

Gerenciador de Usuários com dialog (Active Directory + Dialog)


  

Comentários
[1] Comentário enviado por Ratiug_Sing3R em 26/01/2005 - 17:12h

e ai kra... implementei o lance de deletar o elemento.... kra.. vc entra com o terceiro parametro que é justamente o elemento que vai ser retirado...
usei o stream editor.... o unico lance a rever é que todas as ocorrencias do elemento serão eliminadas..... falou té mais... o código tá abaixo:

#!/bin/sh
#Criado por Rafael Cucharo
#rafael@rdnet.com.br
#incrementado por J.Victor - Ratiug Sing3R
#elemento a ser retirado

if [ -z $2 ] ; then
echo Usage: ./linha \<arquivo\> \<arquivo.novo\> \<elemeto_a_ser_deletado\>
echo Onde arquivo eh o arquivo a ser lido
echo arquivo.novo eh o arquivo criado com
echo 2 linhas a menos.
echo e elemeto_a_ser_deletado eh o elemento que vai ser deletado..rsrsrs
exit 1
fi

file="$1"
file2="$2"
elemento=$3

wc=`cat $file | wc -l`
wc2=`expr $wc - 2`
head -n $wc2 $file > $file2

if [ -z $3 ] ; then
echo Nenhum elemento a ser deletado do arquivo foi informado.
else
file3="dump"
sed /$elemento/d $file2 > $file3
rm -rf $file2
mv $file3 $file2
fi



[2] Comentário enviado por Ratiug_Sing3R em 26/01/2005 - 17:16h

Agora é o seguinte se vc quer eliminar só a linha a ser deletada infomando seu numero dá pra fazer tb... me fala... qualquer coisa....

t+

[3] Comentário enviado por D3v1L em 02/02/2005 - 14:53h

Gostei desse script, foi uma mão na roda pra fazer um outro que arruma o meu relogio no Debian..


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts