[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Script dhcpd.leases
From: |
Leandro Costa |
Subject: |
Script dhcpd.leases |
Date: |
Tue, 24 Oct 2000 19:08:14 -0200 |
Ola galera !!!!
Alguem tem um script que converta: o arquivo dhcpd.leases para um o seguinte
padrao:
Exemplo dhcpd.leases
lease 10.1.0.20 {
starts 1 2000/09/25 21:40:22;
ends 1 2000/09/25 21:50:22;
hardware ethernet 00:00:e8:5a:20:ee;
uid 01:00:00:e8:5a:20:ee;
client-hostname "X-MEN";
}
Padrao pretendido:
host X-MEN {
hardware ethernet 00:00:e8:5a:20:ee;
fixed-address 10.1.0.20;
}
Pq onde trabalho tenho 230 maquinas e preciso cadastrar cada maquina no
arquivo dhcpd.conf e tenho todas as informacoes no arquivo dhcpd.leases
Quem puder me ajudar ...
Agradeco mesmo !!
[]s
Leandro
From (no email address) Tue Oct 24 14:17:48 2000
Return-Path: <address@hidden>
X-Sender: address@hidden
X-Apparently-To: address@hidden
Received: (EGP: mail-6_1_0); 24 Oct 2000 21:17:47 -0000
Received: (qmail 18721 invoked from network); 24 Oct 2000 21:17:46 -0000
Received: from unknown (10.1.10.26) by m3.onelist.org with QMQP; 24 Oct 2000
21:17:46 -0000
Received: from unknown (HELO burns.conectiva) (200.250.58.146) by mta1 with
SMTP; 24 Oct 2000 21:17:44 -0000
Received: (qmail 14692 invoked from network); 24 Oct 2000 21:14:37 -0000
Received: from verde.distro.conectiva (10.0.17.77) by burns.conectiva with
SMTP; 24 Oct 2000 21:14:37 -0000
Date: Tue, 24 Oct 2000 19:20:26 -0200 (BRST)
X-Sender: aurelio@verde.distro.conectiva
To: address@hidden
Subject: Re: RES: [shell-script] renomear arquivos
In-Reply-To: <4B813DAFDA55F14EA92BFABB590081A860B502@wtrjo081>
Message-ID: <Pine.LNX.4.21.0010241839480.942-100000@verde.distro.conectiva>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: 8BIT
From: # aurelio marinho jargas <address@hidden>
@ 24/10, Julio Cezar Neves - DISB.O:
> Henrique, não vou nem responder só pra ver o "show de sed" que o Aurélio
> Jargas (o rei do expressão regular) vai dar :o).
>
> Acho o > barato analisar as "reg exp" rebuscadas que ele usa.
ó não, fui intimado &:)
olha, e sed _dá_ pra fazer, mas eu aconselho outra ferramenta.
o próprio awk abaixo (que eu manjo nada) tá legal, curtinho.
o grande problema é que o sed não te um comando de
(des)capitalização como o toupper do awk, tem que fazer na mão
com o y/abcde...xyz/ABCDE...XYZ/
apenas como masturbação mental, tá aqui o cara com 3 sed's
seguidos. dá pra fazer em um só, mas aí fica muito pouco
didático...
conteúdo do txt:
TUDO MAIUSCULO.txt
tudo minusculo.txt
tUDo dOiDo.txt
varias VARIAS varias palaVRAS.txt
carinha:
cat txt | while read linha
do echo $linha |
sed 's/^/ /;s/ \+/ /;
y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;
s/ \(.\)/\n \1\n/g' |
sed '/^ /{y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/;}' |
sed ':a;$!N;s/\n//;ta;s/ //g'
done
resumo:
são 5 linhas de sed.
linha 1) normaliza os espaços em branco, cortando os seguidos.
linha 2) descapitaliza todo o texto
linha 3) deixa a primeira letra após um espaço em branco (começo
de palavra) em uma linha sozinha com um espaço em branco
na frente
nesse momento, a primeira linha 'TUDO MAIUSCULO.txt' fica assim:
t
udo
m
aiusculo.txt
linha 4) capitaliza apenas as linhas que começam co espaço em
branco
linha 5) rearranja a linha quebrada em uma linha apenas, apagando
os espaços em branco
fim.
eu avisei, com o awk é mais fácil nesse caso &:)
> -----Mensagem original-----
> De: Henrique Limaverde Cabral de Lima [mailto:address@hidden]
> Enviada em: terça-feira, 24 de outubro de 2000 17:23
> Para: address@hidden
> Assunto: [shell-script] renomear arquivos
>
>
> Oi turma,
> estou querendo renomear arquivos de forma que:
> + espacos em branco sejam removidos e
> + cada palavra do nome seja escrita com a primeira letra maiuscula e as
> demais em minusculo
>
> Por ex:
>
> TUDO MAIUSCULO.txt
> tudo minusculo.txt
> tUDo dOiDo.txt
> varias VARIAS varias palaVRAS.txt
>
> Deve ficar:
>
> TudoMaiusculo.txt
> TudoMinusculo.txt
> TudoDoido.txt
> VariasVariasVariasPalavras.txt
>
> Para isso, a ideia eh ler a entrada do ls e gerar um arquivo que contem um
> comando mv para cada arquivo. Na verdade eu consegui fazer com awk. Nao vi
> uma maneira de faze-lo em sed. Estou pedindo sugestoes (sed, awk, etc)
> pois acho que pode existir uma maneira mais elegante...
>
> Eis o codigo:
>
> -x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-
> ls -d *.txt | awk '
> BEGIN {
> FS="\\ "
> OFS=""
> }
> {
> printf "mv \"%s\" ", $0
> for (i=1; i<NF; i++) {
> prim=substr($i,1,1)
> resto=substr($i,2)
> $i=toupper(prim) tolower(resto)
> }
> printf "\"%s\"\n", $0
> }' > temp$$
> -x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-
>
> Obrigado
>
> Henrique Lima
> ---------------------------------------------------------------------
>
>
>
>
> Inscrição: address@hidden
>
> Sair da lista: address@hidden
>
> Banco Dados: http://www.egroups.com/group/shell-script
>
>
> Inscrição: address@hidden
>
> Sair da lista: address@hidden
>
> Banco Dados: http://www.egroups.com/group/shell-script
>
--
s·:(·>(·×^a]×http://www.verde666.org×^[:wq
From (no email address) Tue Oct 24 14:52:37 2000
Return-Path: <address@hidden>
X-Sender: address@hidden
X-Apparently-To: address@hidden
Received: (EGP: mail-6_1_0); 24 Oct 2000 21:52:35 -0000
Received: (qmail 8119 invoked from network); 24 Oct 2000 21:45:55 -0000
Received: from unknown (10.1.10.26) by m4.onelist.org with QMQP; 24 Oct 2000
21:45:55 -0000
Received: from unknown (HELO burns.conectiva) (200.250.58.146) by mta1 with
SMTP; 24 Oct 2000 21:45:53 -0000
Received: (qmail 23161 invoked from network); 24 Oct 2000 21:42:45 -0000
Received: from verde.distro.conectiva (10.0.17.77) by burns.conectiva with
SMTP; 24 Oct 2000 21:42:45 -0000
Date: Tue, 24 Oct 2000 19:48:34 -0200 (BRST)
X-Sender: aurelio@verde.distro.conectiva
To: Shell-Script <address@hidden>
Subject: Re: [shell-script] Script dhcpd.leases
In-Reply-To: <006801c03dfe$86cdddc0$e135bcc8@xmen>
Message-ID: <Pine.LNX.4.21.0010241942350.942-100000@verde.distro.conectiva>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: 8BIT
From: # aurelio marinho jargas <address@hidden>
@ 24/10, Leandro Costa:
> Alguem tem um script que converta: o arquivo dhcpd.leases para um o seguinte
> padrao:
>
> Exemplo dhcpd.leases
> lease 10.1.0.20 {
> starts 1 2000/09/25 21:40:22;
> ends 1 2000/09/25 21:50:22;
> hardware ethernet 00:00:e8:5a:20:ee;
> uid 01:00:00:e8:5a:20:ee;
> client-hostname "X-MEN";
> }
>
> Padrao pretendido:
>
> host X-MEN {
> hardware ethernet 00:00:e8:5a:20:ee;
> fixed-address 10.1.0.20;
> }
tá, já que hoje é o "dia do sed", lá vai &:)
cat dhcpd.leases |
sed -n 's/.*client-hostname "\(.*\)";/host \1 {/p;
/hardware ethernet/s/^ */ /p;
s/^lease \([0-9.]*\) {/ fixed-address \1;/p;
/^}/p' |
sed '/^ fixed/{N;N;s/\(.*\)\(\n\)\(.*\)\n\(.*\)/\4\2\3\2\1/;}'
o primeiro sed deixa o arquivo assim:
fixed-address 10.1.0.20;
hardware ethernet 00:00:e8:5a:20:ee;
host X-MEN {
}
e o segundo sed apenas reordena as linhas, trocando as linhas
1,2,3,4 para 3,2,1,4
--
s·:(·>(·×^a]×http://www.verde666.org×^[:wq
From (no email address) Tue Oct 24 15:07:43 2000
Return-Path: <address@hidden>
X-Sender: address@hidden
X-Apparently-To: address@hidden
Received: (EGP: mail-6_1_0); 24 Oct 2000 22:07:42 -0000
Received: (qmail 15927 invoked from network); 24 Oct 2000 22:04:45 -0000
Received: from unknown (10.1.10.26) by m4.onelist.org with QMQP; 24 Oct 2000
22:04:45 -0000
Received: from unknown (HELO burns.conectiva) (200.250.58.146) by mta1 with
SMTP; 24 Oct 2000 22:04:43 -0000
Received: (qmail 26155 invoked from network); 24 Oct 2000 22:01:33 -0000
Received: from verde.distro.conectiva (10.0.17.77) by burns.conectiva with
SMTP; 24 Oct 2000 22:01:33 -0000
Date: Tue, 24 Oct 2000 20:07:22 -0200 (BRST)
X-Sender: aurelio@verde.distro.conectiva
To: address@hidden
Subject: Re: RES: [shell-script] renomear arquivos
In-Reply-To: <Pine.GSO.4.05.10010241745050.7969-100000@angra>
Message-ID: <Pine.LNX.4.21.0010242003050.942-100000@verde.distro.conectiva>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: 8BIT
From: # aurelio marinho jargas <address@hidden>
@ 24/10, Henrique Limaverde Cabral de Lima:
> > Henrique, não vou nem responder só pra ver o "show de sed" que o Aurélio
> > Jargas (o rei do expressão regular) vai dar :o).
> >
> > Acho o > barato analisar as "reg exp" rebuscadas que ele usa.
>
> Pois eh, eu nao achei foi um jeito de transformar em maiusculas apenas uma
> parte da expressao (por exemplo "\\ [a-z]" :( A unica maneira que eu
> conheco de transformar maiusculas em minusculas eh com y///, mas ele se
> aplica aa linha toda nao?
exato, por isso na outra mensagem, tive que separar cada letra do
início de cada palavra numa linha exclusiva dela, para aplicar o
y///. é xunxo, mas funciona &:)
> Tambem gostaria de ver uma solucao mais elegante (tenho ateh vergonha
> de mostrar esse que eu fiz :)
a do awk tá boa. creio que em perl dê pra fazer em 1 linha.
mas eu entendo lhufas de perl...
--
s·:(·>(·×^a]×http://www.verde666.org×^[:wq
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Script dhcpd.leases,
Leandro Costa <=