shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Script Login


From: shellbh
Subject: Re: [shell-script] Script Login
Date: Fri, 22 Dec 2000 00:12:04 -0200 (BRST)

oi
vc nao vai precisar de script, utilize o comando last

t+
leoserra

X-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-X
|    Linux Conectiva Edicao Servidor 5.1    |
|Kernel 2.2.17                   User 172791|
|              UIN: 45066512                |
|         PVT: address@hidden            |
X-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-X

On Tue, 5 Dec 2000, Otthon Terra wrote:

> Date: Tue, 5 Dec 2000 09:55:52 -0200
> From: Otthon Terra <address@hidden>
> Reply-To: address@hidden
> To: address@hidden
> Subject: [shell-script] Script Login
> 
> Pessoal:
> 
> Estou precisando de um script que informe os horários de logon dos usuários,
> para um controle de produtividade de trabalho.
> 
> Agradeço imensamente se alguém me enviasse, pois não sei quase nada de shell
> script.
> 
> Abraço,
> 
> 
> Otthon Amaral R. Coelho
> 
>    .~.
>    /\/\    GNU/L I N U X
>   //  \\     Quem compara usa !!
>  / (  ) \       ...Linux user 180587
> ^^-^^          ...Linux machine 79876
> > address@hidden
> > http://distro.conectiva.com.br/mailman/listinfo/seguranca
> 
> 
> 
> Inscrição:     address@hidden
> 
> Sair da lista: address@hidden
> 
> Banco Dados:   http://www.egroups.com/group/shell-script
> 
> 



From (no email address) Wed Dec 20 18:29:13 2000
Return-Path: <address@hidden>
X-Sender: address@hidden
X-Apparently-To: address@hidden
Received: (EGP: mail-6_3_1_3); 21 Dec 2000 02:29:13 -0000
Received: (qmail 67288 invoked from network); 21 Dec 2000 02:29:13 -0000
Received: from unknown (10.1.10.142) by m8.onelist.org with QMQP; 21 Dec 2000 
02:29:13 -0000
Received: from unknown (HELO burns.conectiva) (200.250.58.146) by mta3 with 
SMTP; 21 Dec 2000 03:30:16 -0000
Received: (qmail 17164 invoked by uid 0); 21 Dec 2000 02:29:06 -0000
Received: from verde.distro.conectiva (10.0.17.77) by burns.conectiva with 
SMTP; 21 Dec 2000 02:29:06 -0000
Date: Thu, 21 Dec 2000 00:33:00 -0200 (EST)
X-Sender: aurelio@verde.distro.conectiva
To: address@hidden
Subject: Re: [shell-script] duvida com sed
In-Reply-To: <address@hidden>
Message-ID: <Pine.LNX.4.21.0012210022520.995-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>

olá maurício,

@ 19/12, Mauricio Vieira:
> Alo lista,
> tenho uma duvida com um script que penso ser possivel ser feito
> apenas com sed (sou iniciante). tenho uma serie de listas do majordomo e
> quero acrescentar o @araketu.dcc.ufba.br em todos os nomes que nao tiverem
> o @ (ha mails @outracoisa.dominio e nao devem ser alterados, mas todos os
> nomes que nao tem o @ sao araketu.dcc.ufba.br)
> nao entendo muito bem como o sed faz para apagar o nome do arquivo ou nao sei
>  como posso substituir o nome no arquivo, entao fiz o seguinte:
> 
> #!/bin/bash
> 
> # Acerta.sh - script para adicionar o @araketu.dcc.ufba.br em todos os
> # logins de todas as listas que nao tiverem o @araketu.dcc.ufba.br
> 
> # Por Mauricio B. C. Vieira - 2000dez19
> 
> for I in $( ls -1 | grep -E -e 'info' -e 'config' | cut -f 1 -d . | sort \
> | uniq ); do
>   cp $I $I.acerta
>   for NOME in $( grep -v @ $I.acerta ); do
>         sed '/NOME/d' $I.acerta >> $I
>         sed 's/NOME/address@hidden/' $I.acerta >> $I
>   done
> done
> 
> #fim


poderia ser assim:

for I in $(ls -1 | grep -v 'info\|config') 
do cp $I $I.acerta                    # criando temporário
   sed 's/^[^@]*$/&@araketu.dcc.ufba.br' $I.acerta > $I
   rm $I.acerta                       # apagando temporário
done

o sed é:

^      começo de linha
[^@]   qualquer coisa que não seja @
*      várias vezes
$      fim de linha

ou seja, só casa linhas que NÃO tiverem @

e troca por

&          o próprio conteúdo casado na primeira parte
           (a linha original)
@arake...  seu domínio literal


> e nao funcionou. como o sed pode substituir o texto no proprio arquivo,
> sem ter que redirecionar pro pipe? percebi (testando) que se manda
> redirecionar a saida pro proprio arquivo ele apaga (sed 'algumacoisa'
> arquivo > arquivo) o proprio arquivo.

você fez certinho, tem que copiar prum arquivo tmp, aplicar o sed
no tmp e redirecionar a saída pro original.

do sed-HOWTO:

6.4 GRAVANDO O RESULTADO NO MESMO ARQUIVO
http://conectiva.com.br/~aurelio/sed/sed-HOWTO/sed-HOWTO-6.html#ss6.4


> o motivo daquele pequeno comando no ls eh pq o majordomo tem os arquivos
> lista-alunos, lista-alunos.config e lista-alunos.info e quero apenas o
> lista-alunos. alguma sugestao? nao sei awk nem perl, mas sugestoes sao
> bem-vindas (ateh um incentivo pra estudar isto tbm).

pode usar o próprio sed:

ls -1 | sed '/config\|info/d'

isso apaga todas as linhas da saída do ls que contém config ou
info. igual ao grep -v

ls -1 | grep -v 'config\|info'


mais sobre sed, veja o sed-HOWTO:
http://conectiva.com.br/~aurelio/sed/sed-HOWTO


-- 
s·:(·>(·×^a]×http://www.verde666.org×^[:wq



reply via email to

[Prev in Thread] Current Thread [Next in Thread]