Re: [shell-script] Controle de Usuários no Unix,

2008-06-03 Por tôpico César Vianna
Primeiro, se quiseres retorno do script(1), é melhor utilizar o source para
executar "dentro" do script(2). E para passar vários parâmetros, podes
utilizar $1, $2

Assim:

#script(1)
var1=$1
var2=$2
...

#script(2)
source ./script(1)  valor_var1 valor_var2
...





2008/6/3 Petry <[EMAIL PROTECTED]>:

>   Srs.,
>
> Alguém possui algum script que ajude a administrar a criação/manutenção de
> usuários em unix?? Se alguém puder recomendar algum favor entrar em
> contato!
>
> Como não encontrei nenhum, comecei um. Já criei um que cria usuário com
> todas as minhas necessidades( vamos chamar de script(1). Não quero mais
> editar esse script. Comecei um outro(vms chamar de script(2) que com o
> comando "at" programa o desbloqueio/bloqueio de usuário de acordo com a
> data-horário que informo.
>
> Agora nesse que programa bloqueio/desbloq.(script(2)) quero criar uma opção
> de criar o usuário chamando o script(1) que criei para isso. Neste
> script(1)
> ao ser executado ele faz algumas perguntas, o que quero é que script(2)
> envie esses parâmetros automaticamente.
>
> Ou seja, preciso que o script(2) execute o script(1), passe um parâmetro e
> "aperte" ENTER, passe outro parâmetro e "aperte" ENTER, e espera o
> script(1)
> finalizar.
>
> Obrigado,
>
> JP
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
César Vianna
[ -n $ser ] || [ ! -n $ser ] && echo eis a questão


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Controle de Usuários no Unix,

2008-06-03 Por tôpico César Vianna
Se você não pode mudar o script(1), faça da seguinte forma no script(2):

#script(1)
#!/bin/bash
read a
read b
echo "val a  - $a"
echo "val b  - $b"


#script(2)
#!/bin/bash
./script1 << fim
valorA
valorB
fim


Resultado:

val a  - valorA
val b  - valorB





2008/6/3 Flavio Junior <[EMAIL PROTECTED]>:

>   Melhor opção:
>
> Só faça a pergunta se os dados nao foram passados via linha de comando
> do script1, algo como:
>
> if [ x"LOGIN" == x ]; then
> read -p "Login: " LOGIN
> fi
>
> Segunda opção:
>
> Leia/use o expect ...
>
>
> --
>
> Flávio do Carmo Junior aka waKKu
>
> 2008/6/3 Petry <[EMAIL PROTECTED] >:
>
> > Opa,
> >
> > O script(1) ao ser chamado pergunta, por exemplo:
> >
> > Nome do usuário: [ entro com o nome e aperto ENTER ]
> > Senha: [ entro com a senha e aperto ENTER ]
> >
> > E isso não posso mudar devido outros usos.. o que quero no script(2) é
> que
> > ele chame script(1), e envie os parametros necessários... algo como:
> >
> > bash $diretorio/script1.sh
> > Nome do usuario: teste\n
> > Senha: teste\n
> >
> > continua outras funções...
> >
> > obrigado!
> >
> > Em 03/06/08, Édnei Rodrigues <[EMAIL 
> > PROTECTED]>
> escreveu:
> >>
> >> Bah tche, explique melhor o que você não consegue fazer.
> >> Mas antecipando:
> >> Chamada de um arquivo SH => bash $diretorio/nomedoarquivo.sh
> >> parametro1 o sh $diretorio/nomedoarquivo.sh parametro1
> >> aí, nesse teu arquivo nomedoarquivo.sh a variável $1 guarda o primeiro
> >> parametro da chamada...assim, vc pode trabalhar com esse parametro
> >> como quiser.
> >> Que mais vc nao sabe?
> >>
> >> 2008/6/3 Petry <[EMAIL PROTECTED]   40gmail.com>>:
> >> > Srs.,
> >> >
> >> > Alguém possui algum script que ajude a administrar a
> criação/manutenção
> >> de
> >> > usuários em unix?? Se alguém puder recomendar algum favor entrar em
> >> contato!
> >> >
> >> > Como não encontrei nenhum, comecei um. Já criei um que cria usuário
> com
> >> > todas as minhas necessidades( vamos chamar de script(1). Não quero
> mais
> >> > editar esse script. Comecei um outro(vms chamar de script(2) que com o
> >> > comando "at" programa o desbloqueio/bloqueio de usuário de acordo com
> a
> >> > data-horário que informo.
> >> >
> >> > Agora nesse que programa bloqueio/desbloq.(script(2)) quero criar uma
> >> opção
> >> > de criar o usuário chamando o script(1) que criei para isso. Neste
> >> script(1)
> >> > ao ser executado ele faz algumas perguntas, o que quero é que
> script(2)
> >> > envie esses parâmetros automaticamente.
> >> >
> >> > Ou seja, preciso que o script(2) execute o script(1), passe um
> parâmetro
> >> e
> >> > "aperte" ENTER, passe outro parâmetro e "aperte" ENTER, e espera o
> >> script(1)
> >> > finalizar.
> >> >
> >> > Obrigado,
> >> >
> >> > JP
> >> >
> >> > [As partes desta mensagem que não continham texto foram removidas]
> >> >
> >> >
> >>
> >>
> >>
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
>  
>



-- 
César Vianna
[ -n $ser ] || [ ! -n $ser ] && echo eis a questão


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Pegar usuários bloqueados

2008-06-03 Por tôpico César Vianna
Thiago, o ideal é sempre colocar a tua tentativa para que possamos entender
melhor o que estas fazendo. Se está procurando ajuda, claro que tua
tentativa não deu certo. Mas, pra isso que serve a lista.

Vê se isso ajuda:

grep ':!' /etc/shadow



2008/6/3 Thiago Rodines <[EMAIL PROTECTED]>:

>   Na verdade eu não tenho nada pronto ainda... eu fiz algumas tentativas
> mas
> não obtive sucesso.
>
> O funcionamento é o seguinte:
>
> assim que um usuário é bloqueado, o caracter ! é adicionado no arquivo
> /etc/shadow, conforme abaixo (em negrito):
> usuario:*!*$1$g4lfVLhW$5SChIADmVKkuoLQ20u9cm1:13600:0:9:7:::
>
> Ou seja, se conseguirmos ler todas as linhas do arquivo /etc/shadow e, nas
> linhas que possuirem ! depois do :, conseguimos pegar todos os usuários
> bloqueados.
>
> abraços
>
> 2008/6/3 MrBiTS <[EMAIL PROTECTED] >:
>
>
> > -BEGIN PGP SIGNED MESSAGE-
> > Hash: SHA1
> >
> >
> > | Estou pesquisando e tendo dificuldades para montar um script que liste
> os
> > | usuários que estão bloqueados no Linux.
> > | Alguém tem isso pronto ou consegue dar uma luz.
> >
> > O que você já tem pronto ? Qual a linha que você está seguindo ? Qual o
> > critério que você utiliza para bloquear um usuário ?
> >
> > - --
> >
> > Um abraço
> >
> > .0. MrBiTs - [EMAIL PROTECTED]  40linuxmasters.info>
> > ..0 GnuPG -
> >
> http://keys.cardboard.net:11371/pks/lookup?op=get&search=0xAC37715A6DD1F186
> > 000 http://www.mrbits.com.br
> >
> > -BEGIN PGP SIGNATURE-
> > Version: GnuPG v1.4.5 (Cygwin)
> > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
> >
> > iD8DBQFIRU77rDdxWm3R8YYRAlBjAJ9E18HHt6aC2ghRs3kuLO94B7mNqwCfVCmu
> > x5jIzNpqrVUPdadfC6fc12s=
> > =cUus
> > -END PGP SIGNATURE-
> >
> >
>
> --
> Thiago Rodines
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
César Vianna
[ -n $ser ] || [ ! -n $ser ] && echo eis a questão


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Listar somente nomes dos subdiretórios

2008-06-03 Por tôpico César Vianna
O "do" do for é outro comando. Deve estar em nova linha ou precedido de ";"



2008/6/3 Daniel Barros <[EMAIL PROTECTED]>:

>   Valew André
>
> Isso no shell funciona blz, é exatamente o que eu preciso.
>
> Mas tentei montar um script utilizando essa linha q vc passou, mas não
> tô conseguindo rodar ele.
>
> Tô tentando automatizar umas tarefaz repetitivas
>
> Segue o código, por enquanto seria isso...
>
> #!/bin/bash
>
> for i in `ls -l / | grep ^d | awk '{print $NF}'` do
> chmod 777 $i
> cd $i
> chmod 666 *.txt
> cd..
> done
>
> Valew
>  
>



-- 
César Vianna
[ -n $ser ] || [ ! -n $ser ] && echo eis a questão


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Listar somente nomes dos subdiretórios

2008-06-04 Por tôpico César Vianna
Sim.

If condição
then
ação 1
else   #opcional
ação 2
fi

ou


If condição;then ação 1;else  ação 2 ; fi

ou

condição && ação 1 || ação 2





2008/6/4 miranda <[EMAIL PROTECTED]>:

> On Wed, 2008-06-04 at 10:47 -0300, Daniel Barros wrote:
> > >O "do" do for é outro comando. Deve estar em nova linha ou precedido
> > de ";"
>
> o then do if também ??
>
>
> >
>
>
> 
>
> -
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> -
> Sair da lista: [EMAIL PROTECTED]
> -
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> -
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>
>


-- 
César Vianna
[ -n $ser ] || [ ! -n $ser ] && echo eis a questão


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Listar somente nomes dos subdiretórios

2008-06-04 Por tôpico César Vianna
Na verdade, não sei se podemos chamar de outro comando. Mas, na prática deve
ser utilizado como postei anteriormente.
Dá uma olhada nos links abaixo

http://twiki.softwarelivre.org/bin/view/TWikiBar/TWikiBarPapo003

http://twiki.softwarelivre.org/bin/view/TWikiBar/TWikiBarPapo004




2008/6/4 miranda <[EMAIL PROTECTED]>:

> Desculpe, fui lacônico na pergunta .
> o Then do if é outro comando ?
>
> On Wed, 2008-06-04 at 09:44 -0300, César Vianna wrote:
> > Sim.
> >
> > If condição
> > then
> > ação 1
> > else #opcional
> > ação 2
> > fi
> >
> > ou
> >
> > If condição;then ação 1;else ação 2 ; fi
> >
> > ou
> >
> > condição && ação 1 || ação 2
> >
> > 2008/6/4 miranda <[EMAIL PROTECTED]>:
> >
> > > On Wed, 2008-06-04 at 10:47 -0300, Daniel Barros wrote:
> > > > >O "do" do for é outro comando. Deve estar em nova linha ou
> > precedido
> > > > de ";"
> > >
> > > o then do if também ??
> > >
> > >
> > > >
> > >
> > >
> > > 
> > >
> > > --
> > > Esta lista não admite a abordagem de outras liguagens de
> > programação, como
> > > perl, C etc. Quem insistir em não seguir esta regra será moderado
> > sem prévio
> > > aviso.
> > > --
> > > Sair da lista: [EMAIL PROTECTED]
> > > ------
> > > Esta lista é moderada de acordo com o previsto em
> > > http://www.listas-discussao.cjb.net
> > > --
> > > Servidor Newsgroup da lista: news.gmane.org
> > > Grupo: gmane.org.user-groups.programming.shell.brazil
> > >
> > > Links do Yahoo! Grupos
> > >
> > >
> > >
> >
> > --
> > César Vianna
> > [ -n $ser ] || [ ! -n $ser ] && echo eis a questão
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
> >
> >
>
>
> 
>
> -
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> -
> Sair da lista: [EMAIL PROTECTED]
> -
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> -
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>
>


-- 
César Vianna
[ -n $ser ] || [ ! -n $ser ] && echo eis a questão


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] verificar string dentro de outra string

2008-06-04 Por tôpico César Vianna
Lucas, não sei se entendi tua dúvida. Mas, segue uma sugestão.

saida=`echo "getstate() = on"|cut -d" " -f3`

# altere o "echo "getstate() = on""  pelo comando que gera a tua saída.
# o cut -d" " -f3 pega a terceira coluna da saída, tendo como separador um
espaço.
# para testar a saída:

if [ $saida = "off" ]; then echo off; else echo on; fi

ou

[ $saida = "off" ] && echo "esta off" || echo "esta on"






2008/6/4 Lucas Mocellin <[EMAIL PROTECTED]>:

>   Pessoal,
>
> sou iniciante e tenho uma duvida basica,
>
> tem um comando que retorna:
> [EMAIL PROTECTED]:~$ /usr/bin/vmware-cmd /home/vmware/base.vmx getstate
> getstate() = off
> ou
> getstate() = on
>
> gostaria de tratar essa saida, entao encontrei o expr:
>
> expr index $saida "on"
>
> para saber se eh on, ou substituo por off, se a saida for diferente de 0 eh
> verdadeiro, se nao eh falso..
>
> muita gambiarra o que estou fazendo?
>
> bom, nem funciona olha soh:
> [EMAIL PROTECTED]:~$ asdf=`/usr/bin/vmware-cmd /home/vmware/base.vmx getstate`
> vmware@:tcheka~$ echo $asdf
> getstate() = off
> [EMAIL PROTECTED]:~$ expr index $asdf on
> expr: syntax error
>
> estou achando que a saida nao fica uma "string". certo? o que esta errado
> na
> minha colocacao? ou sugestoes melhores?
>
> aproveitando, como verifico o tipo de uma variavel?
>
> obrigado,
>
> Lucas.
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
César Vianna
[ -n $ser ] || [ ! -n $ser ] && echo eis a questão


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Arrumar permissão do diretório automaticamente

2008-06-04 Por tôpico César Vianna
Olha só...

linha=0
linha=$linha+1
echo $linha
0+1

Uma maneira de fazer incremento é

linha=`echo $(($linha+1))`




2008/6/4 Jean Rafael Schultz <[EMAIL PROTECTED]>:

>   Olá,
>
> Acho que não me fiz compreender.
> Tenho um servidor samba que autentica no OpenLdap, ele é um servidor de
> dominio/arquivos.
> Neste servidor possuo cerca de 3.000 usuários que possuem o seu respectivo
> diretório pessoal. Não sei por que as vezes as permissões dos diretórios
> pessoais não estão com as permissões de dono corretas.
> Como o nome do usuario e o nome do diretorio são iguais preciso de um
> script
> que arrume as permissões do diretório do usuario.
>
> Fiz o seguinte script, mas não está funcionando.
> Se alguem puder me ajudar
>
> #!/bin/bash
> arquivo=$(ls)
> linha=0
> for i in $arquivo; do
> linha=$linha+1
> usuario=$(ls | grep -n ^ | grep ^$linha: | cut -d: -f2)
> chown $usuario -R /home/$usuario
>
> done
>
> 2008/6/4 Flavio Junior <[EMAIL PROTECTED] >:
>
>
> > A resposta a sua duvida é simples Jean. Eu só vi o problema na forma
> > como ela foi exposta.
> >
> > Ou seja, eu vou te ajudar ao invés de te dar a solução pronta.
> >
> > Se fosse pra eu fazer isso, eu usaria o "for"
> >
> > Veja um exemplo:
> >
> > #!/bin/bash
> > for nome in /etc /home /boot; do
> > echo "O valor da variavel nome e: $nome"
> > done
> >
> > Espero ter ajudado
> >
> > --
> >
> > Flavio do Carmo Junior aka waKKu
> >
> > 2008/6/4 Jean Rafael Schultz <[EMAIL PROTECTED] 
> >  40gmail.com>>:
> >
> > > Olá,
> > >
> > > Preciso de um script que de um chown nomedousuario no diretório pessoal
> > de
> > > cada usuário automaticamente sendo que o nome do usuário é igual ao
> nome
> > do
> > > diretorio.
> > >
> > > Constantemente o samba perde as permissões de alguns usuários.
> > >
> > > Abraços
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
César Vianna
[ -n $ser ] || [ ! -n $ser ] && echo eis a questão


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Re: Escrever numa linha especifica de um arquivo

2008-06-05 Por tôpico César Vianna
sed 's/padrao/padrao\nnovalinha1\nnovalinha2/' arquivo

trocando padrao por InstalaPacote LibPostGres.tgz ou o que tu quizer




2008/6/5 cristianoeinar <[EMAIL PROTECTED]>:

>   Ops.. Desculpe me expressei mal. São arquivos txt, a linha onde
> necessito inserir é baseado em um padrão. Exemplo tenho que
> acrescentar duas linhas abaixo da linha que contiver a string
> InstalaPacote LibPostGres.tgz. Obrigado
>
>
>  
>



-- 
César Vianna
[ -n $ser ] || [ ! -n $ser ] && echo eis a questão


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Inverter sequencia de caracteres de um String

2008-06-10 Por tôpico César Vianna
rev <<< BADCFEHG

GHEFCDAB




2008/6/10 Petry <[EMAIL PROTECTED]>:

>   Bom dia,
>
> Tenho uma sequência de caractares alfanuméricos invertidos da seguinte
> forma:
>
> BADCFEHG
>
> E quero transforma-lo em:
>
> ABCDFEGH
>
> Uso awk para pegar esse campo de um arquivo, se der para desinverte-lo
> usando awk fica mais prático.
>
> Tentei achar uma função do awk no estilo do split, mas que pegasse cada
> letra de uma string e armazenasse num array, que daí eu consegueria colocar
> em ordem com um for..
>
> Agradeço qualquer idéia,
>
> Valeu
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
César Vianna
[ -n $ser ] || [ ! -n $ser ] && echo eis a questão


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Inverter sequencia de caracteres de um String

2008-06-10 Por tôpico César Vianna
Desculpe, li errado a pergunta.


2008/6/10 César Vianna <[EMAIL PROTECTED]>:

> rev <<< BADCFEHG
>
> GHEFCDAB
>
>
>
>
> 2008/6/10 Petry <[EMAIL PROTECTED]>:
>
>   Bom dia,
>>
>> Tenho uma sequência de caractares alfanuméricos invertidos da seguinte
>> forma:
>>
>> BADCFEHG
>>
>> E quero transforma-lo em:
>>
>> ABCDFEGH
>>
>> Uso awk para pegar esse campo de um arquivo, se der para desinverte-lo
>> usando awk fica mais prático.
>>
>> Tentei achar uma função do awk no estilo do split, mas que pegasse cada
>> letra de uma string e armazenasse num array, que daí eu consegueria
>> colocar
>> em ordem com um for..
>>
>> Agradeço qualquer idéia,
>>
>> Valeu
>>
>> [As partes desta mensagem que não continham texto foram removidas]
>>
>>  
>>
>
>
>
> --
> César Vianna
> [ -n $ser ] || [ ! -n $ser ] && echo eis a questão




-- 
César Vianna
[ -n $ser ] || [ ! -n $ser ] && echo eis a questão


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] apagar 2 linhas e adicionar 3

2008-06-13 Por tôpico César Vianna
Se o número das linhas forem fixos, o exemplo abaixo funciona.

[~]$ cat txt

Resultado:

#--
# DOMAIN: dominio.com.br
#--
.dominio.com.br:192.168.0.1:a:259200
.dominio.com.br:192.168.0.2:b:259200
Cwebmail.dominio.com.br:webmail-cluster.exemplo.com.br:86400
[EMAIL PROTECTED] ~]$ sed '4,5d'

[~]$ sed '4,5d' txt|sed '3a\
.dominio.com.br::ns1.exemplo.com.br:259200\
.dominio.com.br::ns2.exemplo.com.br:259200\
.dominio.com.br::ns3.exemplo.com.br:259200'

Resultado:

#--
# DOMAIN: dominio.com.br
#--
.dominio.com.br::ns1.exemplo.com.br:259200
.dominio.com.br::ns2.exemplo.com.br:259200
.dominio.com.br::ns3.exemplo.com.br:259200
Cwebmail.dominio.com.br:webmail-cluster.exemplo.com.br:86400



2008/6/12 Thiago Alencar <[EMAIL PROTECTED]>:

>   Olá a todos,
>
> Primeira vez que escrevo na lista. Primeiramente bom dia a todos.
>
> Galera tenho estudado os comandos em SED no site "só sed" mas até agora não
> consegui o que preciso.
>
> Eu preciso mudar varios arquivos onde muda o dominio, segue abaixo exemplos
> do começo dos arquivos:
>
> Arquivo atual:
>
> #--
> # DOMAIN: dominio.com.br
> #--
> .dominio.com.br:192.168.0.1:a:259200
> .dominio.com.br:192.168.0.2:b:259200
> Cwebmail.dominio.com.br:webmail-cluster.exemplo.com.br:86400
>
> Arquivo pretendido:
>
> #--
> # DOMAIN: dominio.com.br
> #--
> .dominio.com.br::ns1.exemplo.com.br:259200
> .dominio.com.br::ns2.exemplo.com.br:259200
> .dominio.com.br::ns3.exemplo.com.br:259200
> Cwebmail.dominio.com.br:webmail-cluster.exemplo.com.br:86400
> ...
>
> Eu só sabia até então como mudar uma linha pela outra, ou parte da linha,
> mas neste caso to quebrando a cabeça aqui e não consigo. Peço a ajuda de
> vocês!
>
> Grato,
>
> Thiago Alencar
>
> __
> Fale com seus amigos de graça com o novo Yahoo! Messenger
> http://br.messenger.yahoo.com/
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
César Vianna
[ -n $ser ] || [ ! -n $ser ] && echo eis a questão


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Arquivos no Servidor

2008-06-24 Por tôpico César Vianna
Arquivos com o que repetidos?? Nomes?
Como eles estão organizados?
Seria interessante detalhar melhor seu ambiente e sua necessidade.

Abraços


2008/6/24 Eduardo Miranda - EFSM Solutions <[EMAIL PROTECTED]>:

>   Bom dia a todos do Grupo;
>
> Na empresa onde trabalho, existe aproximadamente 550 Gigas de informação.
>
> Seria muito complexo montar um script para fazer uma listagem dos
> arquivos com repetidos?
> Como faria essa busca?
>  
>



-- 
César Vianna
---
"Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
entre a realidade que existe e o sonho, que é a realidade que não existe."
Fernando Pessoa


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Usuarios Linux

2008-07-08 Por tôpico César Vianna
Pelo exemplo abaixo, acredito que consigas. Apenas altere o echo pelos
comandos que desejas (chmod, chown, etc)

for i in `cut -d: -f1 /etc/passwd`
do
echo user - $i
done

Resultado

user - root
user - bin
user - daemon
user - adm
user - lp
user - sync
user - shutdown
user - halt
user - mail



2008/7/8 Allan Carvalho <[EMAIL PROTECTED]>:

>   Prezados.
>
> Tenho um servidor de arquivos linkado à um AD via ADS, estou fazendo
> migração das pastas dos usuários para o servidor de arquivos.
> O problema é que tenho mais de 100 usuários cadastrados, digitar chown e
> chmod para cada um vai ser muito cansativo, existe um script que liste os
> usuários e os guarde num array? Acredito que colocando um array num laço for
> eu consigo setar as permissões dos usuários.
>
> Agradeço desde já.
>
> --
> Atenciosamente,
> Allan Carvalho
> MSN: [EMAIL PROTECTED] 
> --
>
> Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua
> cara @ymail.com ou @rocketmail.com.
> http://br.new.mail.yahoo.com/addresses
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
César Vianna
---
"Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
entre a realidade que existe e o sonho, que é a realidade que não existe."
Fernando Pessoa


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Usuarios Linux

2008-07-08 Por tôpico César Vianna
Allan, antes que os moderadores se pronunciem, podemos tentar auxiliar na
questão de shell.
Para tanto, precisas informar qual formato estão os teus dados (por colunas,
por linhas, com qual caracter separador, etc), quais comandos precisas
utilizar e qual a dúvida pontual.

Abraços


2008/7/8 Allan Carvalho <[EMAIL PROTECTED]>:

>   Então... os usuários não estão cadastrados no máquina local, estão no
> AD, consigo visualizar os usuários pelo wbinfo -u, só que não sei como
> manipular os dados da resposta do comando, tipo adicionar as linhas da
> resposta em um array para que assim eu possa passar as permissões da pasta
> via chown e chmode.
>
>
> --
> Atenciosamente,
> Allan Carvalho
> MSN: [EMAIL PROTECTED] 
> --
>
> - Mensagem original 
> De: César Vianna <[EMAIL PROTECTED] >
> Para: shell-script@yahoogrupos.com.br 
> Enviadas: Terça-feira, 8 de Julho de 2008 10:37:58
> Assunto: Re: [shell-script] Usuarios Linux
>
>
> Pelo exemplo abaixo, acredito que consigas. Apenas altere o echo pelos
> comandos que desejas (chmod, chown, etc)
>
> for i in `cut -d: -f1 /etc/passwd`
> do
> echo user - $i
> done
>
> Resultado
>
> user - root
> user - bin
> user - daemon
> user - adm
> user - lp
> user - sync
> user - shutdown
> user - halt
> user - mail
>
> 2008/7/8 Allan Carvalho :
>
> > Prezados.
> >
> > Tenho um servidor de arquivos linkado à um AD via ADS, estou fazendo
> > migração das pastas dos usuários para o servidor de arquivos.
> > O problema é que tenho mais de 100 usuários cadastrados, digitar chown e
> > chmod para cada um vai ser muito cansativo, existe um script que liste os
> > usuários e os guarde num array? Acredito que colocando um array num laço
> for
> > eu consigo setar as permissões dos usuários.
> >
> > Agradeço desde já.
> >
> > --
> > Atenciosamente,
> > Allan Carvalho
> > MSN: [EMAIL PROTECTED] com 
> > --
> >
> > Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua
> > cara @ymail.com ou @rocketmail. com.
> > http://br.new. mail.yahoo. com/addresses
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
> --
> César Vianna
>  ---
> "Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
> entre a realidade que existe e o sonho, que é a realidade que não existe."
> Fernando Pessoa
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua
> cara @ymail.com ou @rocketmail.com.
> http://br.new.mail.yahoo.com/addresses
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
César Vianna
---
"Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
entre a realidade que existe e o sonho, que é a realidade que não existe."
Fernando Pessoa


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Criação de arquivos de usuários baseado no /etc/passwd

2008-07-10 Por tôpico César Vianna
Opa Allan

Vamos desmembrar esse cut

d é o delimitador
f é o campo

Segue um exemplo, pegando o 5º campo

$  cut -d: -f5 <<<  "teste:x:18325:18325:NOME DO
USUARIO:/home/teste:/bin/bash"
NOME DO USUARIO



2008/7/10 Allan Carvalho <[EMAIL PROTECTED]>:

>   Prezados.
>
> Tenho o seguinte caso:
>
> Preciso criar um arquivo com o login e o nome completo do usuário, pegando
> estas informações do /etc/passwd, aproveitando a dica do César Vianna,
> consigo pegar o login do usuário pelo laço for:
>
> for i in `cut -d: -f1 /etc/passwd`
>
> Bom, consigo pegar o login do usuário, como implementar para que eu consiga
> pegar também o nome do usuário, já que, após o primeiro ":", existem mais
> três campos até o nome do usuário.
>
> Agradeço desde já.
>
> --
> Atenciosamente,
> Allan Carvalho
> MSN: [EMAIL PROTECTED] 
> --
>
> Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua
> cara @ymail.com ou @rocketmail.com.
> http://br.new.mail.yahoo.com/addresses
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
César Vianna
---
"Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
entre a realidade que existe e o sonho, que é a realidade que não existe."
Fernando Pessoa


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Criação de arquivos de usuários baseado no /etc/passwd

2008-07-10 Por tôpico César Vianna
É por isso que sugeri fazer separado. Meu amigo Júlio talvez discorde. Mas,
as soluções de "uma linha" por vezes complicam a vida.

Sugestão:

#!/bin/bash

for i in `cat /etc/passwd`
do
campo1=`cut -d: -f1 <<< $i`
campo5=`cut -d: -f5 <<< $i`
#agora você faz o que quiser com cada um dos valores
done







2008/7/10 Allan Carvalho <[EMAIL PROTECTED]>:

>   César.
>
> Mais uma vez muito obrigado por sua ajuda.
>
> Tive um problema ao executar o script, abaixo transcrevo o script que
> produzi:
>
> #!/bin/bash
>
> for i in `cut -d: -f1,5 /etc/passwd`
> do
> echo $i >> /root/user/usuarios.txt
> done
>
> Agora, vou pegar somente a linha do usuario que criei no /etc/passwd
>
> allan:x:1002:1003:Allan Carvalho,,,:/home/allan:/bin/bash
>
> E agora, o resultado no arquivo usuarios.txt
>
> allan:Allan
> Carvalho,,,
>
> Note que ele tratou o espaço existente entre o primeiro e o segundo nome
> como o início de uma nova linha, e na verdade, eu queria que ficasse como
> allan:Allan Carvalho .
>
> Como eu poderia corrigir isso?
>
> --
> Atenciosamente,
> Allan Carvalho
> MSN: [EMAIL PROTECTED] 
> --
>
> - Mensagem original 
> De: César Vianna <[EMAIL PROTECTED] >
> Para: shell-script@yahoogrupos.com.br 
> Enviadas: Quinta-feira, 10 de Julho de 2008 9:22:57
> Assunto: Re: [shell-script] Criação de arquivos de usuários baseado no
> /etc/passwd
>
>
> Opa Allan
>
> Vamos desmembrar esse cut
>
> d é o delimitador
> f é o campo
>
> Segue um exemplo, pegando o 5º campo
>
> $ cut -d: -f5 <<< "teste:x:18325: 18325:NOME DO
> USUARIO:/home/ teste:/bin/ bash"
> NOME DO USUARIO
>
> 2008/7/10 Allan Carvalho :
>
> > Prezados.
> >
> > Tenho o seguinte caso:
> >
> > Preciso criar um arquivo com o login e o nome completo do usuário,
> pegando
> > estas informações do /etc/passwd, aproveitando a dica do César Vianna,
> > consigo pegar o login do usuário pelo laço for:
> >
> > for i in `cut -d: -f1 /etc/passwd`
> >
> > Bom, consigo pegar o login do usuário, como implementar para que eu
> consiga
> > pegar também o nome do usuário, já que, após o primeiro ":", existem mais
> > três campos até o nome do usuário.
> >
> > Agradeço desde já.
> >
> > --
> > Atenciosamente,
> > Allan Carvalho
> > MSN: [EMAIL PROTECTED] com 
> > --
> >
> > Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua
> > cara @ymail.com ou @rocketmail. com.
> > http://br.new. mail.yahoo. com/addresses
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
> --
> César Vianna
>  ---
> "Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
> entre a realidade que existe e o sonho, que é a realidade que não existe."
> Fernando Pessoa
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua
> cara @ymail.com ou @rocketmail.com.
> http://br.new.mail.yahoo.com/addresses
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
César Vianna
---
"Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
entre a realidade que existe e o sonho, que é a realidade que não existe."
Fernando Pessoa


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Criação de arquivos de usuários baseado no /etc/passwd

2008-07-10 Por tôpico César Vianna
Desculpe, esqueci de um detalhe. O IFS - é o separator tabajara

No exemplo abaixo, altero o caracter separador padrão para um "enter"

#!/bin/bash
IFS="
"
for i in `cat /etc/passwd`
do
login=`cut -d: -f1 <<< $i`
nome=`cut -d: -f5 <<< $i`
echo $login ":" $nome
done


2008/7/10 Allan Carvalho <[EMAIL PROTECTED]>:

>   César.
>
> Mais uma vez agradeço pela sua ajuda, porém, escrevi o script conforme sua
> sugestão e obtive o mesmo resultado, ele está considerando o espaço entre os
> nomes como o início de uma nova linha.
>
>
> #!/bin/bash
>
> for i in `cat /etc/passwd`
> do
> login=`cut -d: -f1 <<< $i`
> nome=`cut -d: -f5 <<< $i`
> echo $login ":" $nome >> /root/user/usuarios.txt
> done
>
> --
> Atenciosamente,
> Allan Carvalho
> MSN: [EMAIL PROTECTED] 
> --
>
> - Mensagem original 
> De: César Vianna <[EMAIL PROTECTED] >
> Para: shell-script@yahoogrupos.com.br 
> Enviadas: Quinta-feira, 10 de Julho de 2008 13:06:12
> Assunto: Re: [shell-script] Criação de arquivos de usuários baseado no
> /etc/passwd
>
> É por isso que sugeri fazer separado. Meu amigo Júlio talvez discorde. Mas,
> as soluções de "uma linha" por vezes complicam a vida.
>
> Sugestão:
>
> #!/bin/bash
>
> for i in `cat /etc/passwd`
> do
> campo1=`cut -d: -f1 <<< $i`
> campo5=`cut -d: -f5 <<< $i`
> #agora você faz o que quiser com cada um dos valores
> done
>
> 2008/7/10 Allan Carvalho :
>
> > César.
> >
> > Mais uma vez muito obrigado por sua ajuda.
> >
> > Tive um problema ao executar o script, abaixo transcrevo o script que
> > produzi:
> >
> > #!/bin/bash
> >
> > for i in `cut -d: -f1,5 /etc/passwd`
> > do
> > echo $i >> /root/user/usuarios .txt
> > done
> >
> > Agora, vou pegar somente a linha do usuario que criei no /etc/passwd
> >
> > allan:x:1002: 1003:Allan Carvalho,,,: /home/allan: /bin/bash
> >
> > E agora, o resultado no arquivo usuarios.txt
> >
> > allan:Allan
> > Carvalho,,,
> >
> > Note que ele tratou o espaço existente entre o primeiro e o segundo nome
> > como o início de uma nova linha, e na verdade, eu queria que ficasse como
> > allan:Allan Carvalho .
> >
> > Como eu poderia corrigir isso?
> >
> > --
> > Atenciosamente,
> > Allan Carvalho
> > MSN: [EMAIL PROTECTED] com 
> > --
> >
> > - Mensagem original 
> > De: César Vianna  >
> > Para: shell-script@ yahoogrupos. com.br  com.br>
>
> > Enviadas: Quinta-feira, 10 de Julho de 2008 9:22:57
> > Assunto: Re: [shell-script] Criação de arquivos de usuários baseado no
> > /etc/passwd
> >
> >
> > Opa Allan
> >
> > Vamos desmembrar esse cut
> >
> > d é o delimitador
> > f é o campo
> >
> > Segue um exemplo, pegando o 5º campo
> >
> > $ cut -d: -f5 <<< "teste:x:18325: 18325:NOME DO
> > USUARIO:/home/ teste:/bin/ bash"
> > NOME DO USUARIO
> >
> > 2008/7/10 Allan Carvalho :
> >
> > > Prezados.
> > >
> > > Tenho o seguinte caso:
> > >
> > > Preciso criar um arquivo com o login e o nome completo do usuário,
> > pegando
> > > estas informações do /etc/passwd, aproveitando a dica do César Vianna,
> > > consigo pegar o login do usuário pelo laço for:
> > >
> > > for i in `cut -d: -f1 /etc/passwd`
> > >
> > > Bom, consigo pegar o login do usuário, como implementar para que eu
> > consiga
> > > pegar também o nome do usuário, já que, após o primeiro ":", existem
> mais
> > > três campos até o nome do usuário.
> > >
> > > Agradeço desde já.
> > >
> > > --
> > > Atenciosamente,
> > > Allan Carvalho
> > > MSN: [EMAIL PROTECTED] com 
> > > --
> > >
> > > Novos endereços, o Yahoo! que você conhece. Crie um email novo com a
> sua
> > > cara @ymail.com ou @rocketmail. com.
> > > http://br.new. mail.yahoo. com/addresses
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> >
> > --
> > César Vianna
> >  ---
> > "Talvez porque eu pense demais ou sonhe demais, o certo é que não
> distingo
> > entre a realidade que existe e o sonho, que é a realidade que não
> existe."
> > Fernando Pessoa
> >
> > [As partes desta mensagem que não continha

Re: [shell-script] Lower em um caractere

2008-07-16 Por tôpico César Vianna
tr [:lower:] [:upper:] <<< $n



2008/7/16 felipee_catojo <[EMAIL PROTECTED]>:

>   Olá pessoal. Sou novo aqui na lista, e queria parabeniza-los pela
> organização do grupo e pela ajuda mútua ao proximo.
>
> Estou com um problema bem simples, na realidade queria apenas saber
> como faço para que com qualquer caractere armazenado na variavel n,
> sendo uma letra minuscula recebida pelo comando read, vire maiuscula.
>
> Grato desde já.
>
>  
>



-- 
César Vianna
---
"Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
entre a realidade que existe e o sonho, que é a realidade que não existe."
Fernando Pessoa


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Lower em um caractere

2008-07-16 Por tôpico César Vianna
Complementando, tem uma boa discussão no histórico da lista.

http://br.groups.yahoo.com/group/shell-script/message/26774




2008/7/16 César Vianna <[EMAIL PROTECTED]>:

>
> tr [:lower:] [:upper:] <<< $n
>
>
>
> 2008/7/16 felipee_catojo <[EMAIL PROTECTED]>:
>
>   Olá pessoal. Sou novo aqui na lista, e queria parabeniza-los pela
>> organização do grupo e pela ajuda mútua ao proximo.
>>
>> Estou com um problema bem simples, na realidade queria apenas saber
>> como faço para que com qualquer caractere armazenado na variavel n,
>> sendo uma letra minuscula recebida pelo comando read, vire maiuscula.
>>
>> Grato desde já.
>>
>>  
>>
>
>
>
> --
> César Vianna
> ---
> "Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
> entre a realidade que existe e o sonho, que é a realidade que não existe."
> Fernando Pessoa
>



-- 
César Vianna
---
"Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
entre a realidade que existe e o sonho, que é a realidade que não existe."
Fernando Pessoa


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Organizar entradas em um arquivo...

2008-07-17 Por tôpico César Vianna
Podes utilizar o comando sort

$cat tmp.txt
b
c
a
$ sort tmp
a
b
c



2008/7/16 georgerobinsonbr <[EMAIL PROTECTED]>:

>   Olá Pessoal, sou um novo associado... fui recomendado por um amigo
> para entrar aqui e tentar dirimir algumas duvidas... Por gentileza,
> gostaria de saber como eu poderia organizar um arquivo em ordem
> alfabética...
>
> tenho um arquivo que controla minha whitelist no squid, porém todos os
> dias eu adiciono novas entradas... e gostaria de organizar
> alfabeticamente os endereços ali listados... Ja pensei em fazer com o
> sed, mas eu nao cheguei a lugar alguem... Se alguem puder ajudar...
>
> Att
>
>  
>



-- 
César Vianna
---
"Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
entre a realidade que existe e o sonho, que é a realidade que não existe."
Fernando Pessoa


[As partes desta mensagem que não continham texto foram removidas]



[shell-script] Ignorar erros em um laço

2008-07-17 Por tôpico César Vianna
Opa,
tenho um script que deve fazer a leitura de um arquivo com um for e executar
um sed para cada linha

for i in `cat arquivo`
do
sed ... $i ...
done

O problema é quando o arquivo indicado pelo $i não existe, o laço é
interrompido. Queria que ele ignorasse e continuasse a execução.
A única alternativa que encontrei foi testar a existência do arquivo antes,
mas como é uma lista muito longa queria evitar mais um test





-- 
César Vianna
---
"Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
entre a realidade que existe e o sonho, que é a realidade que não existe."
Fernando Pessoa


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Ignorar erros em um laço

2008-07-17 Por tôpico César Vianna
Com o while ocorre o mesmo...


2008/7/17 Marcos Notari Junior <[EMAIL PROTECTED]>:

>   Cesar,
>
> Utilize o while neste caso... Acho que vai te ajudar mais.
>
> cat arquivo |while read line
> do
> echo $line |sed ... ... 2> /dev/null
> :
> done
>
> Att.
>
> Marcos
>
> Em 17/07/08, César Vianna <[EMAIL PROTECTED]>
> escreveu:
>
> >
> > Opa,
> > tenho um script que deve fazer a leitura de um arquivo com um for e
> > executar
> > um sed para cada linha
> >
> > for i in `cat arquivo`
> > do
> > sed ... $i ...
> > done
> >
> > O problema é quando o arquivo indicado pelo $i não existe, o laço é
> > interrompido. Queria que ele ignorasse e continuasse a execução.
> > A única alternativa que encontrei foi testar a existência do arquivo
> antes,
> > mas como é uma lista muito longa queria evitar mais um test
> >
> > --
> > César Vianna
> > ---
> > "Talvez porque eu pense demais ou sonhe demais, o certo é que não
> distingo
> > entre a realidade que existe e o sonho, que é a realidade que não
> existe."
> > Fernando Pessoa
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
César Vianna
---
"Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
entre a realidade que existe e o sonho, que é a realidade que não existe."
Fernando Pessoa


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Ignorar erros em um laço

2008-07-17 Por tôpico César Vianna
Realmente, tentei simplificar a pergunta, mas faltaram dados. Segue o script
completo.

#!/bin/bash
NOVA_QUOTA=30720
for i in `cat perfil0.txt`
do
utilizado=`head -1 /var/lib/imap/quota/q/user.$i`
n_quota_bytes=$(($NOVA_QUOTA*1024))
if [ $n_quota_bytes -gt $utilizado ]
then
   mv /var/lib/imap/quota/q/user.$i
/var/lib/imap/quota/q/user.$i.old
   sed "2s/.*/$NOVA_QUOTA/" /var/lib/imap/quota/q/user.$i.old >
/var/lib/imap/quota/q/user.$i;chown cyrus.mail /var/lib/imap/quota/q/user.$i
else
echo $i - $(($utilizado/1024/1024)) >> quotas-cheias.txt
fi
done


2008/7/17 MrBiTS <[EMAIL PROTECTED]>:

>   -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA1
>
>
> | tenho um script que deve fazer a leitura de um arquivo com um for e
> executar
> | um sed para cada linha
> |
> | for i in `cat arquivo`
> | do
> | sed ... $i ...
> | done
> |
> | O problema é quando o arquivo indicado pelo $i não existe, o laço é
> | interrompido. Queria que ele ignorasse e continuasse a execução.
> | A única alternativa que encontrei foi testar a existência do arquivo
> antes,
> | mas como é uma lista muito longa queria evitar mais um test
>
> Estranho o laço ser interrompido. Fiz um teste aqui e ele não
> interrompeu nada. Tive mensagens de erro, é claro, mas o laço foi
> executado até o final.
>
> Se o seu script for somente isso, o laço não vai ser interrompido. Como
> você nos deu o que eu imagino seja um exemplo genérico e não mostrou
> mensagens de erro, fica mais dificil adivinhar.
>
> - --
>
> Um abraço
>
> .0. MrBiTs - [EMAIL PROTECTED] 
> ..0 GnuPG -
> http://keys.cardboard.net:11371/pks/lookup?op=get&search=0xAC37715A6DD1F186
> 000 http://www.mrbits.com.br
>
> -BEGIN PGP SIGNATURE-
> Version: GnuPG v1.4.9 (Cygwin)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iEYEARECAAYFAkh/fncACgkQrDdxWm3R8YYnMACfScwZM5m1nMjB2b7VdLw2S0ko
> gToAnioAi0eR1lY3eD2oefwtJsSuIWIy
> =8abb
> -END PGP SIGNATURE-
>  
>



-- 
César Vianna
---
"Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
entre a realidade que existe e o sonho, que é a realidade que não existe."
Fernando Pessoa


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Ignorar erros em um laço

2008-07-17 Por tôpico César Vianna
Exato. Segue o erro.

$ bash -x ./script.sh
++ cat perfil0.txt
+ for i in '`cat perfil0.txt`'
++ head -1 /var/lib/imap/quota/q/user.a
head: não foi possível abrir `/var/lib/imap/quota/q/user.a' para leitura:
Arquivo ou diretório não encontrado
+ utilizado=
./script.sh: line 6: *1024: syntax error: operand expected (error token is
"*1024")


Acabei colocando mais um test. Aumentou o tempo de execução, mas funcionou.

#!/bin/bash
NOVA_QUOTA=30720
for i in `cat perfil0.txt`
do
if [ -e /var/lib/imap/quota/q/user.$i ]
then
utilizado=`head -1 /var/lib/imap/quota/q/user.$i`
n_quota_bytes=$(($NOVA_QUOTA*1024))
if [ $n_quota_bytes -gt $utilizado ]
then
   mv /var/lib/imap/quota/q/user.$i
/var/lib/imap/quota/q/user.$i.old
   sed "2s/.*/$NOVA_QUOTA/"
/var/lib/imap/quota/q/user.$i.old > /var/lib/imap/quota/q/user.$i;chown
cyrus.mail /var/lib/imap/quota/q/user.$i
else
echo $i - $(($utilizado/1024/1024)) >>
quotas-cheias.txt
fi
fi
done





2008/7/17 MrBiTS <[EMAIL PROTECTED]>:

>   -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA1
>
> | Realmente, tentei simplificar a pergunta, mas faltaram dados. Segue o
> script
> | completo.
> |
> | #!/bin/bash
> | NOVA_QUOTA=30720
> | for i in `cat perfil0.txt`
> | do
> | utilizado=`head -1 /var/lib/imap/quota/q/user.$i`
> | n_quota_bytes=$(($NOVA_QUOTA*1024))
> | if [ $n_quota_bytes -gt $utilizado ]
> | then
> | mv /var/lib/imap/quota/q/user.$i
> | /var/lib/imap/quota/q/user.$i.old
> | sed "2s/.*/$NOVA_QUOTA/"
> /var/lib/imap/quota/q/user.$i.old >
> | /var/lib/imap/quota/q/user.$i;chown cyrus.mail
> /var/lib/imap/quota/q/user.$i
> | else
> | echo $i - $(($utilizado/1024/1024)) >> quotas-cheias.txt
> | fi
> | done
>
> Simplificar nem sempre é o melhor caminho, ainda mais numa descrição de
> problemas.
>
> Vejamos. Você havia dito que, quando um arquivo ( $i ) não existe, o
> laço é interrompido. Na verdade, nunca teremos um $i sozinho, mas sempre
> um user.$i. Nesse caso, se user.$i não existe, a variável $utilizado não
> ~ terá nenhum valor e a comparação $n_quota_bytes -gt $utilizado dará um
> erro e, aí sim, quebrará o laço. Creio ser esse o seu problema. Falto a
> mensagem de erro.
>
> Para certificar-se, rode o seu script com um bash -x ./script e
> analise/poste o resultado.
>
> Do resto, não há nada que faça o laço ser quebrado. Os comandos mv e sed
> não quebram laços quando falham, a não ser que você mande o script fazer
> isso explicitamente.
>
> - --
>
> Um abraço
>
> .0. MrBiTs - [EMAIL PROTECTED] 
> ..0 GnuPG -
> http://keys.cardboard.net:11371/pks/lookup?op=get&search=0xAC37715A6DD1F186
> 000 http://www.mrbits.com.br
>
> -BEGIN PGP SIGNATURE-
> Version: GnuPG v1.4.9 (Cygwin)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iEYEARECAAYFAkh/hYIACgkQrDdxWm3R8YajywCfTxcoqP0QJA5CyRLIv4XcXThK
> MLwAn0jKIBfbwE0/o8yJPQSK4Espe2R3
> =LqRt
> -END PGP SIGNATURE-
>  
>



-- 
César Vianna
---
"Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
entre a realidade que existe e o sonho, que é a realidade que não existe."
Fernando Pessoa


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Bash simplesmente fecha em função de um comando.

2008-07-23 Por tôpico César Vianna
Não seria o comando abaixo?

tr "a-z" "A-Z" < /etc/gentoo-release




2008/7/23 Felipe <[EMAIL PROTECTED]>:

>   Bom dia, lista.
>
> Estou executando o seguinte comando:
>
> cat /etc/gentoo-release < <(tr [a-z] [A-Z])
>
> E na realidade o que acontece é que: quando o executo, o terminal
> simplesmente fecha. Pluft, fechou.
>
> Alguem saberia me dizer por qual motivo a bash teve essa reação ?
>
>  
>



-- 
César Vianna
---
"Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
entre a realidade que existe e o sonho, que é a realidade que não existe."
Fernando Pessoa


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Script para reonomear arquivos?

2008-07-23 Por tôpico César Vianna
Opa... vou listar os comandos necessários.. depois dá uma tentada e manda as
dúvidas... acho que assim a lista pode te auxiliar melhor.

Renomear - mv
Trocar caracter - tr
Buscar - find (opção -r para recursivo)

Podes colocar dentro de um laço

Ex.

for i in `find -iname "* *.*"`
do
 novo_nome=`tr " " "_" <<< $i`
done


É por aí...






2008/7/23 Rafael Tomelin <[EMAIL PROTECTED]>:

>   Olá pessoal,
>
> Gostaria de ver com vocês, como que faço um script que busca dentro de um
> determinado diretório "/home/dados" e sub-diretórios
> "/home/dados/contabilidade", *arquivos* que contenham espaço no nome ou
> "\". Ex.: "contabilidade discal" ou "contabilidade\patrimonial" ou
> "contabilidade\sei lah \ o que".
>
> E alterar-se essas caracteres por "_".
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
César Vianna
---
"Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
entre a realidade que existe e o sonho, que é a realidade que não existe."
Fernando Pessoa


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Script para reonomear arquivos?

2008-07-23 Por tôpico César Vianna
Faltou um detalhe no laço. No caso do espaço, o find vai separar os arquivos
que tem espaço, logo, o $i ficará errado
Então, altere o IFS, conforme abaixo:

IFS="
"
for i in `find -iname "* *.*"`
do
 novo_nome=`tr " " "_" <<< $i`
done




2008/7/23 César Vianna <[EMAIL PROTECTED]>:

> Opa... vou listar os comandos necessários.. depois dá uma tentada e manda
> as dúvidas... acho que assim a lista pode te auxiliar melhor.
>
> Renomear - mv
> Trocar caracter - tr
> Buscar - find (opção -r para recursivo)
>
> Podes colocar dentro de um laço
>
> Ex.
>
> for i in `find -iname "* *.*"`
> do
>  novo_nome=`tr " " "_" <<< $i`
> done
>
>
> É por aí...
>
>
>
>
>
>
> 2008/7/23 Rafael Tomelin <[EMAIL PROTECTED]>:
>
>   Olá pessoal,
>>
>> Gostaria de ver com vocês, como que faço um script que busca dentro de um
>> determinado diretório "/home/dados" e sub-diretórios
>> "/home/dados/contabilidade", *arquivos* que contenham espaço no nome ou
>> "\". Ex.: "contabilidade discal" ou "contabilidade\patrimonial" ou
>> "contabilidade\sei lah \ o que".
>>
>> E alterar-se essas caracteres por "_".
>>
>> [As partes desta mensagem que não continham texto foram removidas]
>>
>>  
>>
>
>
>
> --
> César Vianna
> ---
> "Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
> entre a realidade que existe e o sonho, que é a realidade que não existe."
> Fernando Pessoa
>



-- 
César Vianna
---
"Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
entre a realidade que existe e o sonho, que é a realidade que não existe."
Fernando Pessoa


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] operador em bash

2008-07-25 Por tôpico César Vianna
Podemos "encolher" o if com a construção abaixo

[ $a -gt $b  ] && echo "a eh maior" || echo "b eh maior"

Mais detalhes em

http://twiki.softwarelivre.org/TWikiBar/TWikiBarPapo004



2008/7/25 miranda <[EMAIL PROTECTED]>

> existe em bash o análogo do operador da linguagem C :
> ( a > b ? a : b )  ??
>
>
> 
>
> -
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> -
> Sair da lista: [EMAIL PROTECTED]
> -
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> -
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>
>


-- 
César Vianna
---
"Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
entre a realidade que existe e o sonho, que é a realidade que não existe."
Fernando Pessoa


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Dificuldade em enviar comandos para uma conexão socket

2008-07-29 Por tôpico César Vianna
Teste a solução abaixo.

nc -vv localhost 123 << FIM
> comando1
> comando2
> FIM





2008/7/29 Édnei Rodrigues <[EMAIL PROTECTED]>

>   Bom dia a todos.
> Estou tentando fazer um script que envie comandos e strings para uma
> conexão socket criada.
> O que acontece:
>
> O config_teste.txt tem a configuração os quais o CRM interpreta
> arq=`cat config_teste.txt | sed 'N;s/\n//' | sed 's/ //g'` - retiro os
> espaços e quebra de linha
>
> Faço a conexão via Ncat, pois não achei outra alternativa
>
> Aqui que fica a dificuldade...preciso enviar esses comandos para que o
> CRM esteja preparado para receber a configuração
> echo "SWRCFG`echo -n $arq | wc -m`" - Aqui estou enviado o tamanho
> total dos caracteres
> echo "SCFG${arq}" - Cabeçalho do pacote + os caracteres
>
> Pensei em dar um echo " cat comandos.txt | nc -vv 192.168.11.6 50002"
> , no entanto, ele só lê o primeiro comando. ( lembrando que o arquivo
> possui os comandos acima, em linhas separadas )
> Já pensei em colocar nc -vv 192.168.11.6 50002 < comandos.txt , mas
> também só lê o primeiro comando.
> E , por último, tentei inserir os comandos um de cada vez no socket,
> mas é preciso que seja enviado os dois na mesma conexão.
>
> Vocês tem alguma idéia para ajudar?
>
> Obrigado
>  
>



-- 
César Vianna
---
"Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
entre a realidade que existe e o sonho, que é a realidade que não existe."
Fernando Pessoa


[As partes desta mensagem que não continham texto foram removidas]



[shell-script] Verificar Código ASCII

2008-08-12 Por tôpico César Vianna
Pessoal, existe um comando em shell que retorne o valor ascii de um
caracter?




-- 
César Vianna
---
"Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
entre a realidade que existe e o sonho, que é a realidade que não existe."
Fernando Pessoa


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Substituir um Arquivo Com Informação de Outros Dois

2008-08-13 Por tôpico César Vianna
Segue uma sugestão:

Formato do arquivo usuarios.txt

x;Nome Completo


Formato do arquivo grupos.txt

grupo:x:y


Script para substituição:


IFS="
"
for i in `cat usuarios.txt`
do
 user=`cut -d";" -f1 <<< $i`
 nc=`cut -d";" -f2 <<< $i`#nc é o nome completo
 echo $user - $nc
 cat grupos.txt|sed "s/$user/$nc/"
done







2008/8/13 Anderson - Listas <[EMAIL PROTECTED]>

>   Pessoal, estou precisando de uma ajuda com um pequeno script que estou
> montando.
>
> Não é algo complicado de se fazer, mas algo que com pouco experiência
> não estou conseguindo.
>
> Vamos ao problema:
>
> Tenho dois arquivos:
>
> grupos.txt, que o conteudo dele é o seguinte:
> grupo:*:usuario1,usuario2,usuario3 (resultado do comando # getent group
> > grupos.txt)
>
> usuarios.txt, que tem as informações dos usuários (resultado do comando
> # getent passwd > usuarios.txt)
>
> Tratei o usuarios.txt da seguinte forma: # cat usuarios.txt | cut -d:
> -f1,5 | tr : ' ' para que pegasse apenas o nome de usuário e o nome
> completo das pessoas, e substituisse os : por espaço, ficando o arquivo
> com o seguinte formato:
> usuario Nome Completo do Usuário, o que também tratei e deixei assim:
> usuario "Nome Completo do Usuário".
>
> Agora o que quero fazer:
>
> pegar todos os usuários pelo username e substituir pelo nome completo no
> arquivo grupos.txt, para que, ao invés de ficar vomo está, ele me
> mostre o nome completo de cada pessoa que faz parte do grupo, ficando
> assim:
>
> Grupo1:*:Nome Completo, Nome Completo 2, Nome Completo 3
>
> Então o que pensei, pego a primeira referência de cada arquivo, e com um
> sed eu substituo. Se fosse fazer na mão, ficaria algo como:
> # cat grupos.txt | sed 's/usuario/\"Nome Completo\"/'
>
> Isso funciona para cada um, mas se fosse para fazer manualmente não
> estaria fazendo um script ;-)
>
> Com isso resolvi fazer um laço para pegar o conteúdo de cada linha e
> jogar em uma variável para fazer a substituição do arquivo, o que
> começou mais ou menos assim:
>
> #!/bin/bash
> for i in $(cat usuarios.txt | cut -d' ' -f1) ;
> do
> VAR1=$i
> done ;
>
> for j in $(cat usuarios.txt | cut -d\" -f2) ;
> do
> VAR2=$j
> done ;
>
> E foi ai que me enrosquei. Pois, somente com isso, ele irá listar as
> linhas e jogá-las nas variáveis, mas com esse laço for vai ocorrer que
> as variáveis irão armazenar, dessa forma, a ultima ocorrência dos dois
> laços, correto? Então pensei que esses laçoes devam estar dentro de um
> while, talves, checando algo como:
>
> CONT=`cat usuarios.txt | wc`
> while [ $CONT -ge 0 ] ...
>
> E com isso pegar cada linha do cat, para que ele faça algo como, pege a
> VAR1 e compare com a linha do grupo que possua o mesmo nome de usuário e
> substitua por VAR2.
>
> Mas depois disse me enrosquei e fiquei na mão. Talvés existam formas, e
> acredito que sim, muito mais fáceis de fazer isso, mas didaticamente
> falando, poderiam dizer como terminar esse script, e se puderem oferecer
> uma solução amigável além da explicação seria bom para o aprendizado e
> para que da próxima vez eu não tenha que escrever um romance para obter
> ajuda.
>
> Obrigado pela atenção.
>  
>



-- 
César Vianna
---
"Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
entre a realidade que existe e o sonho, que é a realidade que não existe."
Fernando Pessoa


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Substituir um Arquivo Com Informação de Outros Dois

2008-08-13 Por tôpico César Vianna
Complementando

IFS="
"
for i in `cat usuarios.txt`
do
 user=`cut -d";" -f1 <<< $i`
 nc=`cut -d";" -f2 <<< $i`
 cat grupos.txt|sed "s/$user/$nc/" > temp.txt
 cat temp.txt >  grupos.txt
 echo
done
rm temp.txt


Obs. Tem um parâmetro do sed que joga a saída no mesmo arquivo de entrada,
mas não recordo agora e na pesquisa rápida que fiz na lista não encontrei.

2008/8/13 César Vianna <[EMAIL PROTECTED]>

> Segue uma sugestão:
>
> Formato do arquivo usuarios.txt
>
> x;Nome Completo
>
>
> Formato do arquivo grupos.txt
>
> grupo:x:y
>
>
> Script para substituição:
>
> 
> IFS="
> "
> for i in `cat usuarios.txt`
> do
>  user=`cut -d";" -f1 <<< $i`
>  nc=`cut -d";" -f2 <<< $i`#nc é o nome completo
>  echo $user - $nc
>  cat grupos.txt|sed "s/$user/$nc/"
> done
> 
>
>
>
>
>
>
> 2008/8/13 Anderson - Listas <[EMAIL PROTECTED]>
>
>   Pessoal, estou precisando de uma ajuda com um pequeno script que estou
>> montando.
>>
>> Não é algo complicado de se fazer, mas algo que com pouco experiência
>> não estou conseguindo.
>>
>> Vamos ao problema:
>>
>> Tenho dois arquivos:
>>
>> grupos.txt, que o conteudo dele é o seguinte:
>> grupo:*:usuario1,usuario2,usuario3 (resultado do comando # getent group
>> > grupos.txt)
>>
>> usuarios.txt, que tem as informações dos usuários (resultado do comando
>> # getent passwd > usuarios.txt)
>>
>> Tratei o usuarios.txt da seguinte forma: # cat usuarios.txt | cut -d:
>> -f1,5 | tr : ' ' para que pegasse apenas o nome de usuário e o nome
>> completo das pessoas, e substituisse os : por espaço, ficando o arquivo
>> com o seguinte formato:
>> usuario Nome Completo do Usuário, o que também tratei e deixei assim:
>> usuario "Nome Completo do Usuário".
>>
>> Agora o que quero fazer:
>>
>> pegar todos os usuários pelo username e substituir pelo nome completo no
>> arquivo grupos.txt, para que, ao invés de ficar vomo está, ele me
>> mostre o nome completo de cada pessoa que faz parte do grupo, ficando
>> assim:
>>
>> Grupo1:*:Nome Completo, Nome Completo 2, Nome Completo 3
>>
>> Então o que pensei, pego a primeira referência de cada arquivo, e com um
>> sed eu substituo. Se fosse fazer na mão, ficaria algo como:
>> # cat grupos.txt | sed 's/usuario/\"Nome Completo\"/'
>>
>> Isso funciona para cada um, mas se fosse para fazer manualmente não
>> estaria fazendo um script ;-)
>>
>> Com isso resolvi fazer um laço para pegar o conteúdo de cada linha e
>> jogar em uma variável para fazer a substituição do arquivo, o que
>> começou mais ou menos assim:
>>
>> #!/bin/bash
>> for i in $(cat usuarios.txt | cut -d' ' -f1) ;
>> do
>> VAR1=$i
>> done ;
>>
>> for j in $(cat usuarios.txt | cut -d\" -f2) ;
>> do
>> VAR2=$j
>> done ;
>>
>> E foi ai que me enrosquei. Pois, somente com isso, ele irá listar as
>> linhas e jogá-las nas variáveis, mas com esse laço for vai ocorrer que
>> as variáveis irão armazenar, dessa forma, a ultima ocorrência dos dois
>> laços, correto? Então pensei que esses laçoes devam estar dentro de um
>> while, talves, checando algo como:
>>
>> CONT=`cat usuarios.txt | wc`
>> while [ $CONT -ge 0 ] ...
>>
>> E com isso pegar cada linha do cat, para que ele faça algo como, pege a
>> VAR1 e compare com a linha do grupo que possua o mesmo nome de usuário e
>> substitua por VAR2.
>>
>> Mas depois disse me enrosquei e fiquei na mão. Talvés existam formas, e
>> acredito que sim, muito mais fáceis de fazer isso, mas didaticamente
>> falando, poderiam dizer como terminar esse script, e se puderem oferecer
>> uma solução amigável além da explicação seria bom para o aprendizado e
>> para que da próxima vez eu não tenha que escrever um romance para obter
>> ajuda.
>>
>> Obrigado pela atenção.
>>  
>>
>
>
>
> --
> César Vianna
> ---
> "Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
> entre a realidade que existe e o sonho, que é a realidade que não existe."
> Fernando Pessoa
>



-- 
César Vianna
---
"Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
entre a realidade que existe e o sonho, que é a realidade que não existe."
Fernando Pessoa


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Duvida utilização grep e exercicio

2008-08-15 Por tôpico César Vianna
Se entendi tua dúvida, segue um script. Ele lê o arquivo palavras e altera o
arquivo texto, retirando todas as  ocorrências encontradas

for i in `cat palavras`
do
  sed "s/$i//g" texto > temp
  mv temp texto
done
rm temp

Exemplo:

$cat palavras
b e

$cat texto
a
b
c
d e
f g

Após rodar o script

$cat texto
a

c
d
f g





2008/8/15 romano <[EMAIL PROTECTED]>

>   Ae gente eu tenho um exercicio para fazer mas não estou conseguindo.
>
> estou me batendo com o seguinte.
>
> parte dele é para eu pegar 2 arquivos.
>
> 1 deles tem uam especie de palavras que não é para ser pesquisado.
>
> exemplo:
> de do mas uma
> esse arquivo se chama palavras_comuns
>
> e eu tenho outro arquivo que seria um arquivo que é o trabalho de uma
> pessoa. la com tudo os textos e tals.
>
> Eu preciso pegar esse trabalho e retirar toda essa lista de
> palavras_comuns que existe no arquivo palavras_comuns assim eu teria um
> arquivo só com palavras refinadas do mesmo.
>
> Eu estou fazendo da seguinte forma mas não esta dando certo.
> Ele ate um ponto da certo mas, um arquivo de 1000 palavras ele da um
> resultado de 2000 sendo que as ultimas 1000 são repetidas.
>
> Bom vai como eu estou fazendo.
>
> # arquivo que contem o trabalho completo, itero ele para retirar as
> #palavras que não me interressam
> for palavra in `more $TRABALHO_ALUNO.txt`
> do
> #pesquiso se o result for diferente de nada é pq existe a #palavra
> result=`cat $PALAVRAS_COMUM | grep $palavra`
> if [[ $result = "" ]];
> then
> #adiciono em um novo arquivo, as palavras que posso usar
> conteudo=`more $file`;
> echo "$conteudo $palavra" >> $file
> count=`expr $count + 1`
> if [[ $count -eq 8 ]];
> then
> count=0
> echo >> $file
> fi
> fi
> done
>
> as variaveis file, $PALAVRAS_COMUM, $TRABALHO_ALUNO` são definidas em
> cima...
>
> ai tem outras clausulas no exercicio por isso existe o 8 ali pois
> preciso pesquisar essas palavras no google de 8 em 8 usando o lynx e
> depois baixar somente os doc, pdf zipar isso gerar log...
>
> E mais um monte de coisa mas não consigo pegar só as palavras que
> interressam...
>
> QUe estou errando plz...Se puderem só corrigir o que eu fiz de errado eu
> agradeceria
>
> Bom Brigado
> Att: Bruno
>  
>



-- 
César Vianna
---
"Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
entre a realidade que existe e o sonho, que é a realidade que não existe."
Fernando Pessoa


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Pegar posicao num array

2008-08-25 Por tôpico César Vianna
 Here Strings
http://twiki.softwarelivre.org/TWikiBar/TWikiBarBirinaite#Here_Strings




2008/8/25 Danilo Egea <[EMAIL PROTECTED]>

>   Muito obrigado Julio, resolve meu problema.
> Mas vc poderia me explicar esses <<< ?
> heheh
>
> abracos...
>
>
> Julio C. Neves wrote:
> >
> > Fala Danilo,
> > provavelmente acharão uma forma melhor, mas só me ocorreu essa:
> >
> > $ echo $[$(tr ' ' '\n' <<< "[EMAIL PROTECTED]" | cat -n | grep 'tu$' | cut 
> > -f1) -
> 1]
> > 1
> >
> > --
> > Abraços,
> > Julio
> > *Em setembro estarei dando um treinamento
> > Shell em Brasília (em 2 fins de semana).
> > Mais informações: www.tecnologiabr.com.br
> > Tel: (61) 3354-3162
> > *
> >
> > 2008/8/25 Danilo Egea <[EMAIL PROTECTED]
> > <mailto:daniloegea%40yahoo.com.br >>
> >
> > > Olá amigos,
> > >
> > > alguem sabe se é possivel determinar a posicao de um determinado valor
> > > num array em bash ?
> > >
> > > por exemplo, tenho o array A=( 'eu' 'tu' 'nos' ) é possivel saber que
> > > 'tu' esta na posicao 1 do array sem precisar percorrer todo ele usando
> > > um contador ?
> > >
> > > Muito Obrigado !
> > >
> > >
> > > ___
> > > Yahoo! Mail - Sempre a melhor opção para você!
> > > Experimente já e veja as novidades.
> > > http://br.yahoo.com/mailbeta/tudonovo/
> > <http://br.yahoo.com/mailbeta/tudonovo/>
> > >
> > >
> > >
> > >
> >
> > --
> > Abraços,
> > Julio
> > Em setembro estarei dando um treinamento
> > Shell em Brasília (em 2 fins de semana).
> > Mais informações: www.tecnologiabr.com.br
> > Tel: (61) 3354-3162
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
>
>
> ___
> Yahoo! Mail - Sempre a melhor opção para você!
> Experimente já e veja as novidades.
> http://br.yahoo.com/mailbeta/tudonovo/
>
>
>  
>



-- 
César Vianna
---
"Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
entre a realidade que existe e o sonho, que é a realidade que não existe."
Fernando Pessoa


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Extrair apenas uma palavra

2008-09-10 Por tôpico César Vianna
Cole aqui algumas linhas do arquivo. Assim, é possível saber qual padrão
inserir em uma expressão regular. Do contrário, só por bola de cristal.




2008/9/10 semar.depin14 <[EMAIL PROTECTED]>

>   São linhas retiradas do access.log do squid, onde extrai para um outro
> arquivo apenas as linhas com um determinado IP. agora necessito, mas não sei
> como, extrair apenas os usuários que logaram na máquina que recebe aquele
> IP.
>
>
> - Original Message -
> From: jimmy
> To: shell-script@yahoogrupos.com.br 
> Sent: Wednesday, September 10, 2008 10:22 AM
> Subject: Re: [shell-script] Extrair apenas uma palavra
>
> seria necessário um exemplo da estrutura do seu arquivo.
>
> On Wed, Sep 10, 2008 at 09:35:42AM -0300, semar.depin14 wrote:
> > Bom dia a todos,
> >
> > O que estou precisando fazer é o seguinte:
> >
> > Criei um arquivo qualquer a partir de um arquivo de logs contendo as
> linhas de um determinado IP com o "cat arquivo_de_log | grep IP >
> arquivo_qualquer";
> > Preciso agora extrair apenas os nomes de usuários que estão nesse
> arquivo_qualquer, mas não a linha inteira;
> > Por exemplo, desse arquivo_qualquer que está com as linhas que contém
> determinado IP, necessito
> > extrair a palavra "usuario.usuario0-90-9".
> >
> > Agradeço desde já a ajuda de todos.
> >
> > Att.
> >
> > João Luis
> > __=
> > 
> >
> > Prefeitura Municipal de Indaiatuba
> > Telefone: (19) 3834-9000
> > Site: http=
> > ://www.indaiatuba.sp.gov.br/
> >
> > Esta mensagem, incluindo seus anexos, contÿm i=
> > nformaÿÿes confidenciais
> > destinadas ao usuÿrio do endereÿo eletrÿnico e a pr=
> > opÿsitos especÿficos,
> > Caso vocÿ nÿo seja o citado usuÿrio, deve apagar esta =
> > mensagem.
> > ÿ terminantemente proÿbida a utilizaÿÿo, acesso, cÿpia ou divulga=
> > ÿÿo nÿo
> > autorizada das informaÿÿes presentes nesta mensagem.
> > As informaÿÿes =
> > contidas nesta mensagem e em seus anexos sÿo de responsabilidade
> > de seu auto=
> > r.
> >
> >
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> > 
> >
> > --
> > Esta lista não admite a abordagem de outras liguagens de programação,
> como perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> prévio aviso.
> > --
> > Sair da lista: [EMAIL 
> > PROTECTED]
> > --
> > Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> > --
> > Servidor Newsgroup da lista: news.gmane.org
> > Grupo: gmane.org.user-groups.programming.shell.brazil
> >
> > Links do Yahoo! Grupos
> >
> __
>
> --
>
> Prefeitura Municipal de Indaiatuba
> Telefone: (19) 3834-9000
> Site: http://www.indaiatuba.sp.gov.br/
>
> Esta mensagem, incluindo seus anexos, contém informações confidenciais
> destinadas ao usuário do endereço eletrônico e a propósitos específicos.
> Caso você não seja o citado usuário, deve apagar esta mensagem.
> É terminantemente proíbida a utilização, acesso, cópia ou divulgação não
> autorizada das informações presentes nesta mensagem.
> As informações contidas nesta mensagem e em seus anexos são de
> responsabilidade
> de seu autor.
>
> __=
> 
>
> Prefeitura Municipal de Indaiatuba
> Telefone: (19) 3834-9000
> Site: http=
> ://www.indaiatuba.sp.gov.br/
>
> Esta mensagem, incluindo seus anexos, contÿm i=
> nformaÿÿes confidenciais
> destinadas ao usuÿrio do endereÿo eletrÿnico e a pr=
> opÿsitos especÿficos,
> Caso vocÿ nÿo seja o citado usuÿrio, deve apagar esta =
> mensagem.
> ÿ terminantemente proÿbida a utilizaÿÿo, acesso, cÿpia ou divulga=
> ÿÿo nÿo
> autorizada das informaÿÿes presentes nesta mensagem.
> As informaÿÿes =
> contidas nesta mensagem e em seus anexos sÿo de responsabilidade
> de seu auto=
> r.
>
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
César Vianna
---
"Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
entre a realidade que existe e o sonho, que é a realidade que não existe."
Fernando Pessoa


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Guardar parâmetros em um vetor

2008-09-11 Por tôpico César Vianna
Uma maneira simples é alterar o separador padrão, assim:

IFS="
"
vparm=($@)
for (( i = 0; i < $#; i++ )); do
echo ${vparm[i]}
done




2008/9/10 Victor LGomes <[EMAIL PROTECTED]>

>   Boa tarde pessoal!
>
> Estou com a seguinte dúvida:
> Montei um script que recebe alguns parâmetros e os armazena em um vetor.
> Posteriormente uso cada um dos valores armazenados no vetor para montar uma
> nova linha de comando. O exemplo abaixo serve para ilustar a minha dúvida:
>
> vparm=($@)
> for (( i = 0; i < $#; i++ )); do
> echo ${vparm[i]}
> done
>
> Supondo que eu forneça os seguintes parâmetros: a b c d "qualquer coisa"
>
> O vetor fica assim:
> vparm[0]=a
> vparm[1]=b
> vparm[2]=c
> vparm[3]=d
> vparm[4]=qualquer
> vparm[5]=coisa
>
> O que eu preciso é que a posição vparm[4] me traga "qualquer coisa",
> conforme foi passado no parâmetro. Estou usando vetor porque não consegui
> encontrar outra forma de armazenar os parâmetros (que são variáveis).
>
> Alguém poderia me ajudar nesse caso ?
>
> Obriagdo!
> Victor
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
César Vianna
---
"Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
entre a realidade que existe e o sonho, que é a realidade que não existe."
Fernando Pessoa


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Listar total de determinados arquivos

2008-09-19 Por tôpico César Vianna
Acredito que o histórico abaixo ajude:

http://br.groups.yahoo.com/group/shell-script/message/27303
http://br.groups.yahoo.com/group/shell-script/message/27302



2008/9/19 mendes_gre <[EMAIL PROTECTED]>

>   Caros,
>
> Estou tentando listar o total (bytes) de alguns dterminados arquvios,,
> uso o comando abaixo
>
> ls -lRh /opt/ngin/vssp/edrs/7* | grep -i "Sep 16"
>
> estou obtendo o vlr de cada arquivo, mas quero uma soma de bytes de
> todos esses arquivos..
>
> Alguem tem uma idea.??
>
> Att,
>
>  
>



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuza & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Retornar tamanho da pasta do usuário

2008-09-25 Por tôpico César Vianna
Uma alternativa:

cd /home; ls -a . | xargs  du -h --max-depth=0 ; cd -


2008/9/25 Darkzad <[EMAIL PROTECTED]>

>   Olá pessoal,
>
> Gostaria de saber como eu faço para ver o tamanho das pastas de cada
> usuário no linux.
> Estou usando o comando abaixo mas não está funcionando.
>
> ls -a /home/ | du -h -s
>
> Eles só retorna
> . 775MB
>
> Era para mostrar
> José 10 MB
> João 15 MB
> Maria 20 MB
>
> Assim por diante
>
> Valeu Pessoal
>
> Darkzad
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuza & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Script para Logs do Iptables

2008-09-26 Por tôpico César Vianna
Opa, Anderson!
A lista serve para auxílio, não tele-entrega.

Dá uma tentada e vai mandando as dúvidas.

Abraços


2008/9/26 Anderson <[EMAIL PROTECTED]>

>   Opa Fabiano!! bom dia!!
>
> Amigão, eu não fiz nada ainda não, estou aqui na lista aceitando sugestões
> ;-)
>
> Obrigado!
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuza & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Duvida If.....

2008-09-27 Por tôpico César Vianna
A negação deve vir antes da comparação:

if [! $1 = "diario" ] ...




2008/9/27 Redes - Hábil Tecnologia <[EMAIL PROTECTED]>

>   Olá lista estou com certo problema no if...
>
> if [ $1 != "diario" ] !! [ $1 != "semanal" ] || [ $1 != "mensal" ]
> then
> echo "Nao eh diario nem semanal nem mensal !!!"
> else
> echo "eh diario nem semanal nem mensal "
> fi
>
> meu problema é que != não esta funcionando como negação se for somente =
> funciona...
>
> alguem tem algum dica?
>
> Roberro
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuza & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] script para limpar arquivos texto

2008-09-29 Por tôpico César Vianna
Dá uma olhada nesses tópicos, vai ajudar:

http://twiki.softwarelivre.org/TWikiBar/TWikiBarPapo001#Comando
http://twiki.softwarelivre.org/TWikiBar/TWikiBarPapo001#Caracteres_de_redirecionamento


Abraço


2008/9/29 Flavio Junior <[EMAIL PROTECTED]>

>   Tu não pode redirecionar a saida de um arquivo pra ele proprio..
> Ou seja, o teu > $1 ali ta ferrando o arquivo.
>
> ou usa um temporario, ou usa o sed -i
>
> --
>
> Flavio do Carmo Junior aka waKKu
>
> 2008/9/29 Ricardo Vendramini <[EMAIL PROTECTED] 
> >:
>
> >
> > Ola
> >
> > Esta é minha primeira participacao nesta lista, e gostaria de
> > aperfeicoar um pequeno script que fiz para limpar um arquivo texto.
> >
> > Usando o sed, ele remove espacos em branco e tabs do final de cada
> > linha de texto. Tambem remove o caracter 0x0D dos finais de linha,
> > convertendo a quebra de linha do padrao DOS/Win (0x0D,0x0A) para padrao
> > Unix (0x0A).
> >
> > No script, dentro dos colchetes [ tc] tem um espaco em branco, um TAB
> > (0x09) e um LF (0x0D), que substitui por 'tc' ja q esses caracteres nao
> > daria pra enviar por email diretamente (dá pra substitui-los por codigos
> > ASCII?)
> >
> > Os ls antes e depois é para ver o tamanho do arquivo antes e depois da
> > limpeza, para comparacao.
> >
> > #!/bin/bash
> > ls -l $1
> > cat $1 |sed 's/[ tc]*$//g' >$1
> > ls -l $1
> >
> > Mas ha alguma falha que nao consegui descobrir, as vezes quando executo
> > o script em algum aquivo texto, o resultado é um arquivo vazio (0 bytes
> > de tamanho), perdendo todo seu conteudo.
> >
> > Alguem enxerga algum erro ou tem alguma sugestao pra melhora-lo?
> >
> > Abraco
> >
> > Ricardo Vendramini
> >
> >
> >
>  
>



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuza & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Coletar domínio

2008-11-13 Por tôpico César Vianna
O cut resolve, mas não seria necessário redirecionar a saída do cat

Basta

cut -d"@" -f2 arquivo.txt





2008/11/13 Wagner_D <[EMAIL PROTECTED]>

>Dê uma olhada no comando cut (man cut), abaixo um exemplo que
> deve resolver o problema:
>
> $ cat e-mails.txt |cut -d"@" -f2
>
> 2008/11/13 Caio Abreu Ferreira <[EMAIL PROTECTED] >:
>
> > Lista
> >
> > Algum saberia me dizer como faço para coletar os domínios de uma lista de
> > e-mail? Por exemplo, do e-mail [EMAIL PROTECTED]  estou 
> > querendo as
> informações yy.zz
> >
> > Procurei no histórico da lista se existia uma mensgem, mas ficou meio
> difícil
> > procurar pela palavra arroba ou pelo simbolo @.
> >
> > Desde já obrigado.
> >
> >
> > --
> >
> >
> > .''`. Caio Abreu Ferreira
> > : :' : [EMAIL PROTECTED] 
> > `. `'` Debian User
> > `-
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> > 
> >
> > --
> > Esta lista não admite a abordagem de outras liguagens de programação,
> como perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> prévio aviso.
> > --
> > Sair da lista: [EMAIL 
> > PROTECTED]
> > --
> > Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> > --
> > Servidor Newsgroup da lista: news.gmane.org
> > Grupo: gmane.org.user-groups.programming.shell.brazil
> >
> > Links do Yahoo! Grupos
> >
> >
> >
>  
>



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



[shell-script] sed com múltiplos padrões

2008-11-26 Por tôpico César Vianna
Pessoal, quero fazer um sed para substituir caracteres especiais por seus
respectivos códigos HTML.

Por exemplo,

sed 's/é/\é\;/' arq.html
sed 's/ç/\ç\;/' arq.html

Agora se eu quiser colocar todos caracteres no mesmo sed?


-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Verificar se existe um determindado arquivo nos respectivos diretórios

2008-12-23 Por tôpico César Vianna
Pode usar o test com o -f

if [ -f arq.txt ]
then
   echo existe
else
   echo não existe
fi

Para verificar vários diretórios pode usar um laço, por exemplo

while read nome_arq
do
   if [ -f $nome_arq ]
   then
  echo existe
   else
  echo não existe
   fi
done



2008/12/23 Airton Martins 

>
> Boa Tarde,
>
> Senhores, alguém poderia me ajudar, tenho o seguinte scipt:
>
> while true
> do
> echo "
> Menu
> 
> Opcao Acao
> = 
> 1 Listar diretorio /i6/opt/apl/vld/conv
> 2 Listar diretorio /f45/test
> 3 Sair
> Informe sua opcao:\c "
> read Opc
> case $Opc in
> 1) clear; ls -ltr /i6/opt/apl/vld/conv | more ;;
> 2) clear; ls -ltr /f45/test | more ;;
> 4) exit ;;
> esac
> done
>
> O usuário precisa saber se existe um determinado arquivo nos diretórios
> acima, como faria isto para atender tal necessidade.
>
> Grato.
>
>
> Aírton Martins
>
> Veja quais são os assuntos do momento no Yahoo! +Buscados
> http://br.maisbuscados.yahoo.com
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



[shell-script] Retornar linhas anteriores ao padrão

2009-01-05 Por tôpico César Vianna
Opa!

Tenho um arquivo de log e preciso que um script que retorne sempre a quinta
linha anterior ao padrão localizado. O formato é o seguinte:

login_do_usuarioA
status-da-ação1=false
status-da-ação2=true
status-da-ação3=true
status-da-ação4=false
status-da-ação5=true

login_do_usuarioB
status-da-ação1=true
status-da-ação2=false
status-da-ação3=false
status-da-ação4=true
status-da-ação5=false

...


O que preciso é
*
Se
   status-da-ação5=false
Então
   Retorna/Imprima a quinta linha anterior ( isto é, o login do usuário)*


Obs. Não tive nem uma idéia para iniciar...

Grato,
-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Qual a sintae correta?

2009-01-20 Por tôpico César Vianna
 expr1 && expr2

Pode dar uma lida no link abaixo para mais detalhes

http://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo004#E_tome_de_test



2009/1/20 Rafael Tomelin 

>   Olá pessoal,
>
> Gostaria de sbaer qual a sintaxe correta para:
>
> No shell script qual é a sibntaxe do "e" ?
>
> COUNT=2
> SIM=true
>
> if [ $COUNT -eq 2 ]* E *[ $SIM -eq true ]; then
> echo "aqui"
> fi
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Re: Executar comandos remotamente via SSH.

2009-01-28 Por tôpico César Vianna
Depois de configurar as chaves, faça o script dessa forma

ssh usua...@ip << FIM_SCRIPT

#conteúdo do script

FIM_SCRIPT




2009/1/27 deniscostadsc 

>   Eu já consegui conectar mas não consigo executar comando pelo script,
> eu tenho que pegar dados em um server e depois sai acessa outro via
> ssh e assim sucessivamente.
>
> --- Em shell-script@yahoogrupos.com.br ,
> Tiago F Bianchini 
> escreveu
> >
> > Em Segunda 10 Março 2003 15:12, Valdinei Santos escreveu:
> > > "Valdinei Santos" 
> >
> > na maquina q tem o script inicializa o server ssh
> >
> > na maquina q vai chamar o script, usa: ssx xxx.xxx.xxx.xxx
> /caminho/script.sh
> >
> > é importante colocar o caminho completo da localizacao do script
> >
> >
> > a preparacao da autenticacao sem senha é simples:
> >
> > a) gera a chave publica/privada na maquina que chama o script,
> deixando o
> > pasphrase em branco (se colocar algo aqui, vai pedir sempre o
> pasphrase). pra
> > isso usa ssh-keygen -t rsa
> >
> > b) copia o arquivo id_rsa.pub pro dir .ssh do user da maquina q ta o
> script
> > (/home/fulano/.ssh) e renomeia ele pra authorized_keys2. cuida pra
> deixar
> > direitos 600 pra esse arquivo, e deixar o user e grupo do proprio
> usuario
> >
> > e ta pronto
> > testa primeiro um ssh direto pra maquina pra ver se pede senha
> > se nao pedir, testa o comando depois.
> >
> > qqer duvida pergunta
> >
>
>  
>



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Transformar cada 3 linhas em uma

2009-03-05 Por tôpico César Vianna
Utilize o paste

paste -d"," - - - < nome_do_arquivo


2009/3/5 Petry 

>   Pessoal,
>
> Tenho um arquivo com a seguinte informação:
>
> (...)
> 2,5,1,1
> 3
> 5
> 3,7,1,1
> 2
> 8
> (...)
>
> Quero transformá-lo para o seguinte:
> 2,5,1,1,3,5
> 3,7,1,1,2,8
>
> Ou seja, a cada 3 linhas, transformar em uma separando por ,
>
> no AWK poderia usar o FS = \n, mas o que poderia usar como separador de
> blocos?
>
> []s
> JP
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Iniciante

2009-03-26 Por tôpico César Vianna
http://wiki.softwarelivre.org/bin/view/TWikiBar/WebHome



2009/3/26 Patrícia Costerus 

>
> Olá,
>
> Sou nova nessa area, queria saber onde consigo material
>
> basico pra iniciante na net...
>
> Obrigada !
>
> __
> Cansado de espaço para só 50 fotos? Conheça o Spaces, o site de
> relacionamentos com até 6,000 fotos!
> http://www.amigosdomessenger.com.br
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Dados de dois arquivos.

2009-03-30 Por tôpico César Vianna
On line

paste -d"\n" arqa.txt arqb.txt



2009/3/30 Flavio Torres 

>   -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA1
>
>
> Edmilson Menezes wrote:
> > Bom dia pessoal, gostaria da seguinte ajuda, tenho dois arquivos com um
> número de linhas iguais e gostaria de fazer um laço que pegasse a
> primeira linha do arquivo A e a primerira do arquivo B, depois a segunda
> linha do arquivo A e a segunda linha do arquivo B e assim por diante, eu
> cheguei a fazer um for para ler o primeiro arquivo mais na hora de ler o
> segundo ele só termina o for e passa para o primeiro arquivo depois de
> ler o segundo arquivo inteiro. A saida ficaria assim:
> >
> > primeira linha arquivo A
> > primeira linha arquivo B
> > segunda linha arquivo A
> > segunda linha arquivo B
> > .
>
> Tente algo com o paste...
>
> paste arquivo1 arquivo2
>
> te retornara:
> arqA-linha1 arqB-linha1
> arqA-linha2 arqB-linha2
>
> e entao use um for...
>
> for i in $(paste arq1 arq2);do
>
> talvez precise alterar o IFS
>
> abs
>
> - --
>
>
> /*---*/
> /* * Flavio Torres - Administrador de Sistemas*/
> /* /_\ */int y,z;main(x){x=(x>0?-9:x);z=((z=(x+5)
> /* o. .o */)>0?z:-z);printf(!x&&++y?"\n":z?z>y%3+y/
> /* ((Y)) */3?" ":x<-5?"/":"\\":y?"|":"*");y-9?main(
> /* ()) (() */++x):puts(" _|_|_")&&puts(" \\___/");}
> /* ()^() A party animal isn't just for Christmas.*/
> -BEGIN PGP SIGNATURE-
> Version: GnuPG v1.4.9 (GNU/Linux)
>
> iEYEARECAAYFAknQwtIACgkQNRQApncg297VMwCgteMddTP22CJb7Hy7S6WYc5fl
> 5dcAoJy3eGQyBKLF4BnfnWFPFDsBLOpH
> =6xIR
> -END PGP SIGNATURE-
>
>  
>



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Ajuda Iniciante

2009-04-03 Por tôpico César Vianna
r assim ele manda o e-mail mas ai não está monitorando:
> > >
> > > #!/bin/bash
> > >
> > > tail -5 /var/log/apache2/ access.log | grep "10.1.1.31" | mail -s
> "teste"
> > skf...@gmail. com
> > >
> > > Alguma sugestão?
> >
> > tail -5 pega apenas as 5 últimas linhas do arquivo ao invés de
> "monitorar"
> > a
> > inserção de novas linhas, creio que sua necessidade exige algo que
> > funcione como um daemon
> >
> > minha sugestão seria:
> >
> > tail -f /var/log/apache2/ access.log | awk '/10\.1\.1\. 31/{system( "mail
> > -s \"teste\" skf...@gmail. com")}'
> >
> > --
> > "Não manejo bem as palavras
> > Mas manipulo bem as strings."
> >  - -
> >
> > Veja quais são os assuntos do momento no Yahoo! +Buscados
> > http://br.maisbusca dos.yahoo. com
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 -
> Celebridades - Música - Esportes
>
> Veja quais são os assuntos do momento no Yahoo! +Buscados
> http://br.maisbuscados.yahoo.com
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Ajuda Iniciante

2009-04-03 Por tôpico César Vianna
Na verdade acho que eu não expliquei direito.

A idéia que eu dei é tu inverter a impressão do conteúdo com o tac

Depois usar o parâmetro -mNUM do grep para especificar que quer apenas uma
ocorrência ( -m1 )

Adiciona essas dicas as demais que já foram passadas.

Acredito que ficará assim

tac /var/log/apache2/access.log | grep -m1 -i -A5-B3 "10.1.1.31"





2009/4/3 Standler meir 

>   Olá César,
>
> Obrigado pelo retorno.
>
> Talves e nao esteja sendo mto claro...
> Vou mostrar meu cenário atual
>
> quando gera um erro no código o log do catalina.out gera essa saída:
>
> 03/04/2009 18:43:47 mpb.utility.EntityManagerHelper log
> ERRO: mpb - find all failed
> org.hibernate.AssertionFailure: null id in .Componente
> entry (don't flush the Session after an exception occurs)
> at
> org.hibernate.event.def.DefaultFlushEntityEventListener.checkId(DefaultFlushEntityEventListener.java:78)
> at
> org.hibernate.event.def.DefaultFlushEntityEventListener.getValues(DefaultFlushEntityEventListener.java:187)
> at
> org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:143)
> at
> org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:219)
> at
> org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:99)
> at
> org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:58)
> at
> org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:996)
> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1141)
> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
> at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:67)
> at com.webpack.mpb.dao.obra.ObraDAO.findAll(ObraDAO.java:309)
> at com.webpack.mpb.mb.login.LoginMB.getObras(LoginMB.java:134)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
> at
> javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
> at
> org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:140)
> at org.apache.el.parser.AstValue.getValue(AstValue.java:118)
> at
> org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
> at
> com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
> at
> javax.faces.component.UISelectItems.getValue(UISelectItems.java:130)
> at org.apache.myfaces.shared_impl.util.SelectItemsIterator.hasNext
>
>
> Entao para cada erro ele gera uma saida com essa! da maneir que o script
> estava ele tava pegando todas as saidas e como essa:
>
>
> 03/04/2009 18:43:47 mpb.utility.EntityManagerHelper log
> ERRO: mpb - find all failed
> org.hibernate.AssertionFailure: null id in .Componente
>
> e mandando para o meu e-mail.
>
> Só que eu quero que manda so a ultima que representa o erro do momento e
> nao as outras.
>
> fiz o que vc disse assim:
>
> #!/usr/local/bin/bash
> while true; do
> (tail -f /usr/local/apache-tomcat-6.0.18/logs/catalina.out | grep
> -q "ERRO: mpb")
> if [ "$?" = "0" ]; then
> echo $? "foi"
>
> $ cat txt
> pri 1
> seg 2
> terc 1
> $ tac txt | grep 1 -m1 "ERRO: mpb"
> /usr/local/apache-tomcat-6.0.18/logs/catalina.out | mail -s "Erro MPB"
> skf...@gmail.com 
> terc 1
> fi
> done
>
>
> dessa forma ele ta gerando uma saída assim:
>
> /usr/local/apache-tomcat-6.0.18/logs/catalina.out:17/03/2009 20:59:05
> org.apache.tomcat.util.digester.SetPropertiesRule begin
>
> Enquanto que o desejado e uma saida assim:
>
> 03/04/2009 18:43:47 mpb.utility.EntityManagerHelper log
> ERRO: mpb - find all failed
> org.hibernate.AssertionFailure: null id in .Componente
>
> ou seja a partir do ERRO: mpb ele me pega uma linha acima e uma linha
> abaixo.
>
>
> Pow galera mais uma vez obrigado pela atenção de todos.. valeu mesmo!
>
> Abraço
>
> --- Em sex, 3/4/09, César Vianna 
> >
> escreveu:
>
> De: César Vianna >
> Assunto: Re: [shell-script] Ajuda Iniciante
> Para: shell-script@yahoogrupos.com

Re: [shell-script] Ajuda com teste de string

2009-04-07 Por tôpico César Vianna
Como não disseste qual a dificuldade, seguem links sobre o assunto:

http://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo003#O_Comando_if

http://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo004#E_tome_de_test




2009/4/7 Felipe 

>   Boa tarde a todos,
>
> Sou novato em SH e estou encontrando dificuldades para tratar teste com o
> comando "if"
>
> Ajuda com teste de string
>
>  
>



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Verificar se arquivo existe utilizando FTP e BASH

2009-04-16 Por tôpico César Vianna
Para armazenar o resultado do ls em uma variável é

var=`ls $1`  #entre crases

Mas, cuide que a variável estará no shell filho criado na execução do
script. Dependendo do objetivo terás que fazer um export




2009/4/16 Thiago Guedes Pereira 

>
>
> Boa tarde Pessoal.
>
> Para enviar o backup via FTP eu criei a função:
>
> function envia_ftp {
>
> ftp -i -n $FTPSERVER < user $USER $PASS
> passive
> cd mail-pop/
> mkdir $DATAINICIO
> cd $DATAINICIO
> put $1
> quit
> BLOCO
>
> }
>
> Só que as vezes o envio não é bem sucedido. Então queria fazer algo do
> tipo.
>
> 1º Envio o backup por FTP
> 2º Acesso o FTP e verifico se o arquivo está lá.
>
> Pensei em algo do tipo:
>
> function verifica_ftp {
>
> ftp -i -n $FTPSERVER < user $USER $PASS
> passive
> cd mail-pop/
> cd $DATAINICIO
> ls $1
> quit
> BLOCO
>
> }
>
> * Só que na parte do *ls* eu precisava redirecionar a saída do comando para
> uma variável... Alguem com uma boa idéia?
>
> --
> Att,
> Thiago Guedes Pereira
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



[shell-script] Arrumar nomes de arquivos com caracter "\372"

2009-05-12 Por tôpico César Vianna
*Dúvida direta:*
Como usar o sed para alterar o caracter de codificação inválida que aparece
como "?" e tem código "\372"
Consegui com
  tr "\372" "-" <<< $variavel
Queria fazer com sed

*Motivo:*
Corrigir nomes de arquivos no Ubuntu
A maioria dos problemas resolvi com o Funções ZZ (zarrumanome) -
http://funcoeszz.net
Só que falta um caracter inválido "?" que não consegui corrigir... Então
quero inserir na função e ela utiliza sed

Ex:
2008-05-30 22:29 N?o S?o Paulo 2



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Arrumar nomes de arquivos com caracter "\372"

2009-05-13 Por tôpico César Vianna
Continuando...
Qual o motivo do erro abaixo?
 ls TomZé-1968/|file -i -
/dev/stdin: writable, no read permission

*Contexto:*

Estou usando o iconv para corrigir a codificação dos arquivos. Mas, tenho
que testar qual a codificação atual do arquivo, caso contrário, os
caracteres especiais ficam corrompidos.

*Exemplo com Resultado Esperado*
$ ls
TomZ?-1968  tomz-1968.zip

$ ls |file -i -
/dev/stdin: text/plain; charset=iso-8859-1

$ while read line; do echo "$(iconv -f iso-8859-1 -t utf-8 <<< $line)"; done
< <(ls)
TomZé-1968
tomz-1968.zip

*Exemplo com Resultado Não Desejado*

$ ls
tomz-1968.zip  TomZé-1968

$ ls |file -i -
/dev/stdin: text/plain; charset=utf-8

$ while read line; do echo "$(iconv -f iso-8859-1 -t utf-8 <<< $line)"; done
< <(ls)
tomz-1968.zip
TomZé-1968


*Então, meu script precisa testar se o arquivo está em iso-8859-1 para então
converter.*





2009/5/12 Reinaldo de Carvalho 

>
>
> 2009/5/12 César Vianna 
> >:
> > *Dúvida direta:*
>
> > Como usar o sed para alterar o caracter de codificação inválida que
> aparece
> > como "?" e tem código "\372"
> > Consegui com
> >  tr "\372" "-" <<< $variavel
> > Queria fazer com sed
> >
>
> Bem, eu não chamaria de codificação inválida, mas de codificação
> diferente do padrão do seu terminal.
>
> while read line;
> echo mv "$line" "$(iconv -f iso-8859-1 -t utf-8 <<< $line)"
> done < <(ls)
>
> > *Motivo:*
> > Corrigir nomes de arquivos no Ubuntu
> > A maioria dos problemas resolvi com o Funções ZZ (zarrumanome) -
> > http://funcoeszz.net
> > Só que falta um caracter inválido "?" que não consegui corrigir... Então
> > quero inserir na função e ela utiliza sed
> >
> > Ex:
> > 2008-05-30 22:29 N?o S?o Paulo 2
> >
> >
>
> A forma mais interessante é via rsync, pesquise no histórico.
>
> --
> Reinaldo de Carvalho
> http://korreio.sf.net
> http://python-cyrus.sf.net
>  
>



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Arrumar nomes de arquivos com caracter "\372"

2009-05-13 Por tôpico César Vianna
Segue a evolução do script..

#---
IFS="
"
while read line
do
cod=`echo "$line"|file -i -|cut -d"=" -f2`
if [ $cod == "iso-8859-1" ]
then
mv "$line" "$(iconv -f iso-8859-1 -t utf-8 <<< $line)"
fi
done < <(find .)
#---

Agora o problema é quando o diretório está em iso-8859-1 e o arquivo dentro
dele está em utf-8

Quando isso ocorre, o erro relatado abaixo é reproduzido.





2009/5/13 César Vianna 

> Continuando...
> Qual o motivo do erro abaixo?
>  ls TomZé-1968/|file -i -
> /dev/stdin: writable, no read permission
>
> *Contexto:*
>
> Estou usando o iconv para corrigir a codificação dos arquivos. Mas, tenho
> que testar qual a codificação atual do arquivo, caso contrário, os
> caracteres especiais ficam corrompidos.
>
> *Exemplo com Resultado Esperado*
> $ ls
> TomZ?-1968  tomz-1968.zip
>
> $ ls |file -i -
> /dev/stdin: text/plain; charset=iso-8859-1
>
> $ while read line; do echo "$(iconv -f iso-8859-1 -t utf-8 <<< $line)";
> done < <(ls)
> TomZé-1968
> tomz-1968.zip
>
> *Exemplo com Resultado Não Desejado*
>
> $ ls
> tomz-1968.zip  TomZé-1968
>
> $ ls |file -i -
> /dev/stdin: text/plain; charset=utf-8
>
> $ while read line; do echo "$(iconv -f iso-8859-1 -t utf-8 <<< $line)";
> done < <(ls)
> tomz-1968.zip
> TomZé-1968
>
>
> *Então, meu script precisa testar se o arquivo está em iso-8859-1 para
> então converter.*
>
>
>
>
>
> 2009/5/12 Reinaldo de Carvalho 
>
>
>>
>> 2009/5/12 César Vianna 
>> >:
>> > *Dúvida direta:*
>>
>> > Como usar o sed para alterar o caracter de codificação inválida que
>> aparece
>> > como "?" e tem código "\372"
>> > Consegui com
>> >  tr "\372" "-" <<< $variavel
>> > Queria fazer com sed
>> >
>>
>> Bem, eu não chamaria de codificação inválida, mas de codificação
>> diferente do padrão do seu terminal.
>>
>> while read line;
>> echo mv "$line" "$(iconv -f iso-8859-1 -t utf-8 <<< $line)"
>> done < <(ls)
>>
>> > *Motivo:*
>> > Corrigir nomes de arquivos no Ubuntu
>> > A maioria dos problemas resolvi com o Funções ZZ (zarrumanome) -
>> > http://funcoeszz.net
>> > Só que falta um caracter inválido "?" que não consegui corrigir... Então
>> > quero inserir na função e ela utiliza sed
>> >
>> > Ex:
>> > 2008-05-30 22:29 N?o S?o Paulo 2
>> >
>> >
>>
>> A forma mais interessante é via rsync, pesquise no histórico.
>>
>> --
>> Reinaldo de Carvalho
>> http://korreio.sf.net
>> http://python-cyrus.sf.net
>>  
>>
>
>
>
> --
> César Vianna
> ---
> Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
> unidades; os agenciamentos móveis aos sistemas.
> Gilles Deleuze & Felix Guattari
>



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



[shell-script] Remover quebra de linha

2009-06-15 Por tôpico César Vianna
Pessoal, tenho um arquivo com umas 30mil linhas com o seguinte padrão

ID§CONTEÚDO ALEATÓRIO
CONTEÚDO ALEATÓRIO
CONTEÚDO ALEATÓRIO§FROMCONTEÚDO ALEATÓRIO
CONTEÚDO ALEATÓRIO
ID§CONTEÚDO ALEATÓRIO
CONTEÚDO ALEATÓRIO
CONTEÚDO ALEATÓRIO§FROMCONTEÚDO ALEATÓRIO

Preciso remover as quebras de linhas entre os valores ID§ - O valor ID§ vem
sempre no inicio da linha e marca o inicio de um bloco de informações.

Tentei com o sed abaixo:

sed 's/[^ID§]\(.*\)$/\1/g' from-to-status.log   #Pesquisar tudo que não
começa com ID§. Desse resultado, remover a quebra de linha. Mas, o resultado
foi igual ao arquivo original.


-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Re: Remover quebra de linha

2009-06-15 Por tôpico César Vianna
Opa! Valeu, Cristiano. Funcionou perfeitamente.

Só não entendi a expressão que remove as quebras. O que é a expressão
:a;$!N;  ? e o ta ?

sed ':a;$!N;s/\n/ /g;ta; s/ID§/\nID§/g'





2009/6/15 Cristiano Ferrari 

>
>
> --- Em shell-script@yahoogrupos.com.br ,
> César Vianna  escreveu
>
> >
> > Pessoal, tenho um arquivo com umas 30mil linhas com o seguinte padrão
> >
> > ID§CONTEÚDO ALEATÓRIO
> > CONTEÚDO ALEATÓRIO
> > CONTEÚDO ALEATÓRIO§FROMCONTEÚDO ALEATÓRIO
> > CONTEÚDO ALEATÓRIO
> > ID§CONTEÚDO ALEATÓRIO
> > CONTEÚDO ALEATÓRIO
> > CONTEÚDO ALEATÓRIO§FROMCONTEÚDO ALEATÓRIO
> >
> > Preciso remover as quebras de linhas entre os valores ID§ - O valor ID§
> vem
> > sempre no inicio da linha e marca o inicio de um bloco de informações.
> >
> > Tentei com o sed abaixo:
> >
> > sed 's/[^ID§]\(.*\)$/\1/g' from-to-status.log #Pesquisar tudo que não
> > começa com ID§. Desse resultado, remover a quebra de linha. Mas, o
> resultado
> > foi igual ao arquivo original.
> >
>
> César, veja se é isso que você quer (colei no pastebin para facilitar a
> leitura do resultado):
>
> http://pastebin.com/fd78d60e
>
> Se for isso, a explicação da solução é a seguinte:
>
> O comando ':a;$!N;s/\n/ /g;ta' remove todas as quebras de linha do arquivo.
> Em seguida, o comando 's/ID§/\nID§/g' substitui a string ID§ pela mesma
> string ID§, precedida de uma quebra de linha (\n).
>
> É isto que você queria fazer??
>
>  
>



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



[shell-script] Redirecionar saída do comando time

2009-06-24 Por tôpico César Vianna
Estou tentando redirecionar a saída do comando time, mas não está
funcionando.

Tentei

time > arquivo
time 2> arquivo

Em ambos casos a saída fica na tela.

Estou usando bash no Ubuntu.


-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



[shell-script] Verificar linhas presentes em dois arquivos

2009-06-30 Por tôpico César Vianna
Pessoal, possuo um script de monitoração e uma função dele efetua a
verificação de linhas presentes em dois arquivos, através do laço abaixo. O
problema é que o arquivo *teste* possui 100MB e está ficando muito lento,
pois faz muito acesso à disco para ler e gravar os arquivos de saída. O que
eu poderia utilizar para aumentar o desempenho?

while read velha
 do
   mv /tmp/log /tmp/lognew
   grep "$velha" /tmp/lognew>> /tmp/dup
   grep -v "$velha" /tmp/lognew > /tmp/log
done < /tmp/teste



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



[shell-script] Atribuir valor de arquivo para variável - sem alter ar precedência

2009-07-14 Por tôpico César Vianna
Pessoal, tenho que atribuir um valor a uma variável, mas se utilizo crase ou
$() altera a precedência do script e dá erro. Segue o trecho de código:

ssh u...@ip-servidor << LABEL-FIM
  variavel=`cat arquivo.txt`
  # ou variavel=$(cat arquivo.txt)
LABEL-FIM

Em ambos casos o cat é executado antes do ssh.

Qual a alternativa para que a precedência do cat seja apenas sobre a
atribuição?


-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] sed script exclui comentários

2009-07-16 Por tôpico César Vianna
digo em uma outra linguagem que usa
>
> > ponto e virgula (;) para comentário:
>
> > sed 's/\;.*$//;/ ^$/d'
>
> >
>
> > essa solução acima até funcionaou mas não exclui as linhas em branco
>
> >
>
> > --- Em qui, 16/7/09, jimmy  40yahoo.com. br>>
>
> > escreveu:
>
> >
>
> > De: jimmy >
>
> >
>
> > Assunto: Re: [shell-script] sed script exclui comentários
>
> > Para: shell-script@ yahoogrupos. com.br  com.br>
>
> > Data: Quinta-feira, 16 de Julho de 2009, 9:16
>
> >
>
> >
>
> >
>
> > On Thu, Jul 16, 2009 at 03:55:01AM -0700, denis costa wrote:
>
> >
>
> > > Olá a todos eu tenho um problema em um script...
>
> >
>
> > >
>
> >
>
> > > estava fazendo um script que contabilizava as linha de códigos-fontes
>
> > (excluindo linha em branco e comentários)
>
> >
>
> > > então fiz em sed para apagar o que começa com comentário e apagar as
>
> > linhas em branco:
>
> >
>
> > >
>
> >
>
> > > sed '/^#/d;/^$/d'
>
> >
>
> > >
>
> >
>
> > > mas assim ele só apaga no ínicio da linha, não apaga se tiver um espao
> ou
>
> > tab.
>
> >
>
> > >
>
> >
>
> > > outra solução era apagar do comentário até o fim da linha, mas esse
>
> > também apaga a linha toda:
>
> >
>
> > >
>
> >
>
> > > sed '/#/,/$/d;/^ $/d'
>
> >
>
> > >
>
> >
>
> > > Ou seja caso tenha um comentário após uma linha de código essa será
>
> > excluída da contagem final.
>
> >
>
> > >
>
> >
>
> > > Por favor me ajudem com o complexíssimo( sic) sed, pelo menos pra mim.
>
> >
>
> > >
>
> >
>
> > > Desde já agradeço a todos...
>
> >
>
> > >
>
> >
>
> > > E parabéns pela qualidade da lista a todos!!!
>
> >
>
> > >
>
> >
>
> > > Um abraço
>
> >
>
> > >
>
> >
>
> > >  - - --
>
> >
>
> > com o sed tente fazer:
>
> >
>
> > $ sed '/^\s*\(#\|$ \)/d;' arquivo
>
> >
>
> > ou
>
> >
>
> > $ sed '/^\s*[^#]\w/ !d' arquivo
>
> >
>
> > mas já que você quer contar:
>
> >
>
> > $ grep -E -c '^\s*[^#]\w' arquivo
>
> >
>
> > --
>
> >
>
> > "Não manejo bem as palavras
>
> >
>
> > Mas manipulo bem as strings."
>
> >
>
> >  - -
>
> >
>
> > "Cada um usa a ferramenta que merece."
>
> >
>
> >  - -
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >  _ _ _ _ _ _
>
> > Veja quais são os assuntos do momento no Yahoo! +Buscados
>
> > http://br.maisbusca dos.yahoo. com
>
> >
>
> > [As partes desta mensagem que não continham texto foram removidas]
>
> >
>
> >
>
> >
>
> --
>
> Jacson R. C. Silva
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>  _ _ _ _ _ _
>
> Veja quais são os assuntos do momento no Yahoo! +Buscados
>
> http://br.maisbusca dos.yahoo. com
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
>
>
>
>
>
>
>
>
> __
> Veja quais são os assuntos do momento no Yahoo! +Buscados
> http://br.maisbuscados.yahoo.com
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] sed script exclui comentários

2009-07-17 Por tôpico César Vianna
Ok. Outra refinando

sed 's/ *//g;s/\(.*\)#.*/\1/g' arquivo|grep -v "^$"|wc -l

s/ *//g => retira todos os espaços em branco
s/\(.*\)#.*/\1/g => procura qualquer coisa seguido de # mais qualquer coisa
e substitui pelo primeiro padrão \1
grep - retira linhas em branco



2009/7/16 denis costa 

>
>
> outra coisa que esqueci de falar César Vianna, essa solução as linha
> indesejadas  se o comentário estiver identado:
>
> solução:
> grep -v "^#" arquivo | grep -v "^$"
>
> exemplo
>
> #!/bin/bash
> #este programa não faz nada
> #e não escreve nada
> echo "NADA"
>
> depois de processar:
>
> #e não escreve nada
> echo "NADA"
>
> --- Em qui, 16/7/09, denis costa 
> >
> escreveu:
>
>
> De: denis costa 
> >
> Assunto: Re: [shell-script] sed script exclui comentários
> Para: shell-script@yahoogrupos.com.br 
> Data: Quinta-feira, 16 de Julho de 2009, 12:42
>
>
>
>
> Servir serve...
>
> Mas se vc testar no código em IDl que mandei pra lista verá que não
> funcionará, pois o grep ou o sed não exclui os comentários identados, ou
> seja que tenham espaços ou tabs, por isso o mesmo código funcionará em uma
> linguagem e não em outras. Na teoria deveria funcionar em qualquer linguagem
> que use o mesmo método de comentário, um símbolo especial na frente da
> linha, era só trocar o símbolo. Mas não consegui fazer funcionar...
>
> Muito provavelmente deve ser pela minha falta de conhecimento em sed, grep
> e regex!!! =^$
>
> Muito Obrigado
>
> --- Em qui, 16/7/09, César Vianna  escreveu:
>
> De: César Vianna 
>
> Assunto: Re: [shell-script] sed script exclui comentários
>
> Para: shell-script@ yahoogrupos. com.br
>
> Data: Quinta-feira, 16 de Julho de 2009, 11:26
>
>
>
> Não sei se entendi errado, mas não serve a alternativa abaixo?
>
> O primeiro grep remove linhas que iniciam com comentário e o segundo as
>
> linhas em branco
>
> ~# grep -v "^#" /etc/apache2/ apache2.conf| grep -v "^$"|wc -l
>
> 45
>
> 2009/7/16 denis costa 
>
> >
>
> >
>
> > os programas que estou usando para testar o contador de linhas "úteis"
>
> >
>
> > Programa bash
>
> >
>
> > #!/bin/bash
>
> > #
>
> > # Programa que cria aliases na quantidade necessária
>
> > #
>
> > # Para criar aliases a sintaxe é:
>
> > # ./aliases.sh cria 1 2 (1 é a variação do terceiro octeto do IP e 2 a
>
> > variação do quarto)
>
> > # Para destruir aliases a sintaxe é:
>
> > # ./aliases.sh destroi
>
> >
>
> > rede_base=168. 192
>
> >
>
> > mascara=255. 255.0.0
>
> > contador=0
>
> >
>
> > if [ $1 == cria ]; then
>
> > echo "serão criados `expr $2 \* \( $3 + 1 \)` aliases"
>
> > sleep 3
>
> > for octeto_tres in `seq 1 $2`; do
>
> > for octeto_quatro in `seq 0 $3`; do
>
> > ifconfig eth0:$contador inet
>
> > ${rede_base} .${octeto_ tres}.${octeto_ quatro} netmask $mascara
>
> > contador=$(expr $contador + 1)
>
> > done
>
> > done
>
> > elif [ $1 == destroi ]; then
>
> > ifconfig eth0:0 down
>
> > fi
>
> >
>
> > programa IDL
>
> >
>
> > pro grafico
>
> >
>
> > srf,'/mnt/proc026/ MOSAIC-0968. univap2009. postgres/
> dsm2.5/br090218_ uva4kmco_ 001b1014_ 0968. forward3_ dem_crs', dem
>
> >
>
> > srf,'/mnt/proc074/ denis/br090218_ uva4kmco2. 5_001b1014_ 0463.
> forward4_ dem_crs', dsm
>
> > ;Faz diferança
>
> > diff=dsm-dem
>
> > diffz=dem-dsm
>
> > ;Limpa as imagens de diferença
>
> > putdum,diff, 1000
>
> > putdum,diffz, 1000
>
> > ;Mostra a imagem de diferença
>
> > tvf,diffz,5, 5,-10,10
>
> > ;Calcula informação para gráficos
>
> > range=rebix( diff)
>
> > azimuth=rebiy( diff)
>
> > rangez=rebix( diffz)
>
> > azimuthz=rebiy( diffz)
>
> > ;Mostra gráficos
>
> > window,/free & !p.color=0
>
> > wset,33
>
> > plot,range,yrange= [-10,10], title='Range'
>
> > window,/free & !p.color=0
>
> > wset,34
>
> > plot,azimuth, yrange=[- 10,10],title= 'Azimuth'
>
> >
>
> > for i=0, 100 do begin
>
> > print,"calculando range..."
>
> > wset,33
>
> > wait,3
>
> > plot,rangez, yrange=[- 10,10],title= 'Range'
>
> >
>
> > print,"Phase Cal...&quo

[shell-script] Saída do ls para o cut

2009-08-11 Por tôpico César Vianna
Gostaria de redirecionar a saída de um ls para um cut.

Sempre faço com fo

for var in `ls`
do
   cut -d"." -f1 <<< $var
done


Ok. Funciona, Mas, acredito que tenha uma maneira mais elegante, tipo uma
linha...




-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



[shell-script] Delay Xargs

2009-08-11 Por tôpico César Vianna
Estou utilizando um comando ldapsearch dentro de um xargs. O problema é que
acarreta uma frequência de requisições do que o permitido pelo servidor.
Então queria colocar um delay entre as execuções do xargs

O comando é

 ls | cut -d. -f1 | xargs -I ’{}’ ldapsearch -x -h IP uid=’{}’ -LLL



 ls | cut -d. -f1 # imprime o nome de arquivos que serão os argumentos do
filtro do ldapsearch (post que realizei anteriormente)

-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]





-
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
-
Sair da lista: shell-script-unsubscr...@yahoogrupos.com.br
-
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
-
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
shell-script-unsubscr...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




Re: [shell-script] Delay Xargs

2009-08-12 Por tôpico César Vianna
É... tinha tentado o teste &&, mas não funciona.

Mas, mudando um pouco a sintaxe sugerida pelo Júlio funcionou:

ls | cut -d. -f1 | xargs -I '{}' bash -c "ldapsearch -x -h IP -b BASE
uid='{}' -LLL;sleep $Delay"


Quanto ao ldapsearch não vi erro, mas tranquilo, essa parte está fora do
escopo.

Valeu Júlio e Marcelo!!



2009/8/12 Julio C. Neves 

> Marcelo, isso provavelmente não funcionará, pois o teste && só será
> executado ao fim do cmd ldapsearch e acho que o Cesar quer é que um delay
> seja criado a cada execução do xargs (que com a opção -i, atua como um
> loop).
>
> Mas Cesar, acho que tem algo errado na sua sintaxe do ldapsearch.
> --
> Abraços,
> Julio
> Cursos de Shell e Zenity?
> - Em SP ligue (11) 2125-4747 (dias 29-30/08 e 12-13/09);
> - Em DF ligue (61) 3223-3000;
> - No RJ ligue (21) 2561-0867;
> - Turmas fechadas em outras cidades ligue (21) 8112-9988.
>
>
> 2009/8/11 Marcelo Andrade 
>
> >
> >
> > 2009/8/11 César Vianna  >
> > >:
> >
> > > Estou utilizando um comando ldapsearch dentro de um xargs. O problema é
> > que
> > > acarreta uma frequência de requisições do que o permitido pelo
> servidor.
> > > Então queria colocar um delay entre as execuções do xargs
> > >
> > > O comando é
> > >
> > >  ls | cut -d. -f1 | xargs -I ’{}’ ldapsearch -x -h IP uid=’{}’ -LLL
> >
> > Tentou chamar algo como "ldapsearch ... && sleep 10" ?
> >
> > Atenciosamente.
> >
> > --
> > MARCELO DE F. ANDRADE
> > Belem, PA, Amazonia, Brazil
> > Linux User #221105
> >
> > http://mfandrade.wordpress.com
> >
> >
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> 
>
> -
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> -
> Sair da lista: shell-script-unsubscr...@yahoogrupos.com.br
> -----
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> -
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>
>


-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]





-
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
-
Sair da lista: shell-script-unsubscr...@yahoogrupos.com.br
-
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
-
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
shell-script-unsubscr...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




Re: [shell-script] Dúvida para validar o valor corr eto

2009-08-18 Por tôpico César Vianna
Camarada o find com a opção exec ou com xargs pode te ajudar.

Segue histórico da lista sobre o assunto

http://br.groups.yahoo.com/group/shell-script/message/16939
http://br.groups.yahoo.com/group/shell-script/message/12333
http://br.groups.yahoo.com/group/shell-script/message/25725

Se não ajudar, manda de volta.
Abraço



2009/8/18 Eduardo Sousa 

>
>
> Estou tentando finalizar um script para deletar arquivos de log onde
> determino a data, porém estou com dificuldades para validar o valor correto,
> agradeço a ajuda dos colegas ?
>
> Exemplo:
>
> echo "Qual data deseja deletar ? - Ex: Aug 17"
>
> read DATA
>
> -->> test $DATA ...não sei o que inserir nesta sequencia
>
> ls -lart /log/ | grep -E "$DATA" | cut -c 59- > /log/
>
> cat lista.txt | xargs rm -rf
>
> rm -rf lista.txt
>
> Att.
>
> Eduardo Sousa
>
>  
>



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] colocar SID em arquivo

2009-08-18 Por tôpico César Vianna
Não sei se te entendi. Mas, vai a minha avaliação:

$ cat lalala.conf
SID="SIDMAQUINA"

$ sed 's/SIDMAQUINA/NOVOSID/g' lalala.conf
SID="NOVOSID"

*O novo sid pode estar em uma variável.*

$ NOVOSID=`net getlocalsid | gawk '{print $6}'`
$ sed 's/SIDMAQUINA/$NOVOSID/g' lalala.conf




2009/8/18 bleee 

>
>
> Possuo um arquivo de configuraçao, no qual preciso inserir o SID da
> maquina.
> estou automatizando a instalação.
> O netsid é pego atraves do comando  net getlocalsid
>
> O que fiz foi separar o campo necessário.. que eh o campo 6, assim
>
> net getlocalsid | gawk '{print $6}'
>
> o print eh soh pra apresentar mesmo
>
> mas o que acontece eh que nao sei como posso colocar no lalala.conf no
> lugar de SID="SIDMAQUINA"
>
> alguem tem alguma ideia???
>
> grato
> =D
>
> __
> Veja quais são os assuntos do momento no Yahoo! +Buscados
> http://br.maisbuscados.yahoo.com
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] colocar SID em arquivo

2009-08-18 Por tôpico César Vianna
 Tem que cuidar pra não ficar um emaranhado que ninguém entende. Mas, com
xargs deve funcionar:

net getlocalsid | gawk '{print $6}'` | xargs -I '{}' sed 's/SIDMAQUINA/{}/g'
lalala.conf





2009/8/18 bleee 

>
>
> Os 2 modelos funcionaram bem.
> Resolveram o problema. Mas será que nao tem como fazer isso de maneira a
> nao precisar de uma variavel?
>
> tentar fazer jogar direto.
> a linha é aquela mesma, sem problema.
>
> desde já, obrigado
>
> --- Em ter, 18/8/09, César Vianna 
> >
> escreveu:
>
> De: César Vianna >
> Assunto: Re: [shell-script] colocar SID em arquivo
> Para: shell-script@yahoogrupos.com.br 
> Data: Terça-feira, 18 de Agosto de 2009, 14:55
>
>
>
>
> Não sei se te entendi. Mas, vai a minha avaliação:
>
> $ cat lalala.conf
>
> SID="SIDMAQUINA"
>
> $ sed 's/SIDMAQUINA/ NOVOSID/g' lalala.conf
>
> SID="NOVOSID"
>
> *O novo sid pode estar em uma variável.*
>
> $ NOVOSID=`net getlocalsid | gawk '{print $6}'`
>
> $ sed 's/SIDMAQUINA/ $NOVOSID/ g' lalala.conf
>
> 2009/8/18 bleee 
>
> >
>
> >
>
> > Possuo um arquivo de configuraçao, no qual preciso inserir o SID da
>
> > maquina.
>
> > estou automatizando a instalação.
>
> > O netsid é pego atraves do comando net getlocalsid
>
> >
>
> > O que fiz foi separar o campo necessário.. que eh o campo 6, assim
>
> >
>
> > net getlocalsid | gawk '{print $6}'
>
> >
>
> > o print eh soh pra apresentar mesmo
>
> >
>
> > mas o que acontece eh que nao sei como posso colocar no lalala.conf no
>
> > lugar de SID="SIDMAQUINA"
>
> >
>
> > alguem tem alguma ideia???
>
> >
>
> > grato
>
> > =D
>
> >
>
> >  _ _ _ _ _ _
>
> > Veja quais são os assuntos do momento no Yahoo! +Buscados
>
> > http://br.maisbusca dos.yahoo. com
>
> >
>
> > [As partes desta mensagem que não continham texto foram removidas]
>
> >
>
> >
>
> >
>
> --
>
> César Vianna
>
> ---- ---
>
> Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
>
> unidades; os agenciamentos móveis aos sistemas.
>
> Gilles Deleuze & Felix Guattari
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
>
>
>
>
>
>
>
>
> __
> Fale com seus amigos de graça com o novo Yahoo! Messenger
> http://br.messenger.yahoo.com/
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Pesquisa de diretivas #if

2009-08-18 Por tôpico César Vianna
sed ajuda

 echo "if defined( XXX ) || defined( YYY )"| sed 's/||/\n||/'



2009/8/18 Márcio Gil 

>
>
> Colegas,
>
> Eu executei a seguinte consulta, visando localizar diretivas
> #ifdef/#ifndef que não constam em um arquivo de opções do programa
> chamado Local.h:
>
> $ for DEF in $(grep -h "^\# *ifn\?def *" *.cpp | sed "s/^\#
> *ifn\?def *//" | sort -u) ; do if ! grep -q "\# *define *$DEF"
> Local/Local.h ; then echo $DEF ; fi ; done
> CAD_PRO_CLEAR_LOCFORM
> SCF_CH_BALCAO
> SCF_ORC_PRECO_CPAG
> SISQUERY
>
> Funcionou perfeito para as diretivas #ifdef e #ifndef, agora eu
> queria extrair as variaveis contidas em diretivar #if, na forma:
>
> #if defined( XXX ) && defined( YYY )
>
> ou
>
> #if defined( XXX ) || !defined( YYY )
>
> etc.
>
> Quero que o comando retorne XXX e YYY em linhas separadas ou
> separadas por um espaço. Agora o problema mesmo será quebrar linhas
> assim:
>
> #if defined( XXX ) \
> || defined( YYY )
>
> alguem me dá alguma sugestão?
>
> Obrigado,
>
> Marcio Gil.
>
>  
>



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] comando

2009-08-27 Por tôpico César Vianna
. é qualquer caracter (um)
[^b] que não eja b


Então, casa com "casa" e não com "caba"

Esse link deve te ajudar

http://aurelio.net/shell/canivete.html#metacaracteres



2009/8/27 luiscriera 

>
>
>
> Alguem poderia me explicar este comando
> ls |grep .a[^b]a.
>
>  
>



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



[shell-script] Chamada de Função dentro do Xargs

2009-09-29 Por tôpico César Vianna
Tenho um script que contém a funcção copydir (desenvolvida pelo Aurélio
Marinho Jargas)

#bin/bash
function copydir(){

#corpo a funcao...

}

#Uso a função com o xargs. A variável perfil contem paths de diretórios
echo $perfis|xargs -I "{}" bash -c "copydir '{}' '{}.backup.$data'"


O resultado é
bash: copydir: comando não encontrado

Se eu colocar somente

copydir origem destino

Funciona normalmente...







-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Chamada de Função dentro do Xar gs

2009-09-29 Por tôpico César Vianna
Pois é... fiquei pensando se tinha uma maneira de fazer o export de toda a
função.

Acabei usando um for e removi o xargs



2009/9/29 Julio C. Neves 

>
>
> O bash -c abre um subshell e por isso não vê a função que está declarada no
> shell pai. O melhor seria deixar o copydir como uma função externa e
> colocar
> a sua chamada da seguinte forma:
>
> echo "$perfis" |xargs -i bash -c ". copydir {} {}.backup.$data"
>
> Não conheço esta função, mas caso cada path da variável $perfis não esteja
> sozinho em uma linha, é provável que isso não funcione, pois gerará algo
> como:
>
> copydir arq1 arq2 arq3 arq1 arq2 arq3.backup.$data
>
> veja:
>
> $ perfis="arq1 arq2 arq3"
> $ echo "$perfis" | xargs -i echo {}.sufixo
> arq1 arq2 arq3.sufixo
> $ perfis="arq1
> > arq2
> > arq3"
> $ echo "$perfis" | xargs -i echo {}.sufixo
> arq1.sufixo
> arq2.sufixo
> arq3.sufixo
>
> Obs: a opção -l do xargs só se usa qdo o marcador de posição tem de ser
> diferente de {}, pois este é o padrão (default) da opção -i.
>
> Abraços,
> Julio
> Cursos de Shell e Zenity em 2 fins de semana?
> - Em SP ligue (11) 2125-4747;
> - Em DF ligue (61) 3223-3000 (próxima turma de 1 a 4/10);
> - No RJ ligue (21) 2561-0867;
> - Turmas fechadas em outras cidades ligue (21) 8112-9988.
>
> 2009/9/29 César Vianna >
>
>
> >
> >
> > Tenho um script que contém a funcção copydir (desenvolvida pelo Aurélio
> > Marinho Jargas)
> >
> > #bin/bash
> > function copydir(){
> >
> > #corpo a funcao...
> >
> > }
> >
> > #Uso a função com o xargs. A variável perfil contem paths de diretórios
> > echo $perfis|xargs -I "{}" bash -c "copydir '{}' '{}.backup.$data'"
> >
> > O resultado é
> > bash: copydir: comando não encontrado
> >
> > Se eu colocar somente
> >
> > copydir origem destino
> >
> > Funciona normalmente...
> >
> > --
> > César Vianna
> > ---
> > Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo
> às
> > unidades; os agenciamentos móveis aos sistemas.
> > Gilles Deleuze & Felix Guattari
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



[shell-script] ls no dialog

2009-09-29 Por tôpico César Vianna
Preciso que o usuário selecione 1 diretório a partir de um ls

cat <<< "$locais"
 dir1
 dir2
 dir3
 dir4


Para montar o dialog, tentei

selecao=$( dialog --stdout --menu 'Diretórios do Google Gears:' 0 0 0 `cat
<<< "$locais"` '' )

Mas o resultado foi

dir1dir2
dir3dir4

Isto é, uma linha como opção e a segunda como descrição. Eu queria que a
descrição fosse em branco e cada linha uma opção.








-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



[shell-script] Diferença entre $* e $@

2009-09-30 Por tôpico César Vianna
Pessoal, qual a diferença entre $* e $@ ?




-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] apagar "received"

2009-11-12 Por tôpico César Vianna
grep -v "received"


2009/11/12 Jair Santanna 

>
>
> Desejo apagar as linha de um arquivo que contém a palavra "received"
>
> Grato
>  
>



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]





-
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
-
Sair da lista: shell-script-unsubscr...@yahoogrupos.com.br
-
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
-
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
shell-script-unsubscr...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




[shell-script] Compactar arquivos antigos

2009-11-19 Por tôpico César Vianna
Estou tentando compactar arquivos com mais de um ano

find -mtime +365|xargs -I '{}' tar --append --file=teste.tar.gz  '{}'

Mas, é gerado o erro abaixo

tar: Impossível atualizar arquivos-tar compactados
tar: Erro não é recuperável: saindo agora

Se eu uso

find -mtime +365|xargs -I '{}' tar -czvf teste.tar.gz  '{}'

O tar vai substituindo o arquivo e no final tenho apenas o último arquivo
encontrado pelo find.

Alguma dica?

-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Compactar arquivos antigos

2009-11-19 Por tôpico César Vianna
Grande Júlio! Fiquei sabendo que passou por Porto Alegre e nem avisou pra
tomarmos um chopp. Abriu um botecos novos aqui daqueles!!

Boas dicas do xargs. Reli o capítulo indicado. Mas, continuo com erro

find /var/lib/mailman/archives/ -mtime +365|xargs tar --append
--file=teste.tar.gz
tar: Cannot update compressed archives
tar: Error is not recoverable: exiting now
tar: Cannot update compressed archives
tar: Error is not recoverable: exiting now

Mas, agora acho que o erro tá no append do tar. Executei separado assim:

# teste2 é um arquivo vazio
tar --append --file=teste.tar.gz teste2
tar: Cannot update compressed archives
tar: Error is not recoverable: exiting now





2009/11/19 Julio C. Neves 

> Fala Cesar (é o Cesar Vianna meu amigo?),
> Alguns comentários a fazer:
> - A opção -I do xargs serve para vc especificar o delimitador, só que as
> chaves ({}) são o padrão, então é melhor vc usar a opção -i (minúsculo) e
> não especificar nada;
> - Só que a função do xargs é pegar o máximo possível de cada vez do que vem
> da entrada primária e botar atrás (com todo respeito) do cmd que ele está
> executando, porém qdo vc usa a opção -i (ou a -I), ele tratará um-a-um os
> arquivos recebidos da entrada primária.
>
> O seu problema é causado por este último parágrafo. No duro ele está
> compactando os arquivos, um por um, e só restando na saída o último.
>
> Aí ficam 2 dúvidas:
> 1. Como resolver este problema?
> Simples, use o xargs da forma para a qual ele foi otimizado, isto é, faça:
> find -mtime +365|xargs tar --append --file=teste.tar.gz
> 2. Ué, então pra que serve o -i?
> Para qdo vc não deseja botar o conteúdo da entrada primária atrás do cmd,
> mas sim botar no meio (mais uma vez com todo respeito) do cmd. P.ex.
> digamos
> que eu queira mover os mesmos arquivo descoberto pelo find acima para um
> diretório chamado velhos. Eu faria:
> find -mtime +365|xargs -i mv {} velhos
>
> O xargs é extremamente poderoso e
> aqui<https://wiki.softwarelivre.org/bin/view/TWikiBar/TWikiBarBirinaite>vc
> encontrará uma boa explicação sobre este cmd, em português e cheia de
> exemplos. Gaste uns 20 minutos lendo e testando, vale a pena.
>
> Abraços,
> Julio
> Cursos de Shell e Zenity em 2 fins de semana?
> - Em SP ligue (11) 2125-4747 Curso de 07 a 11/12;
> - Em DF ligue (61) 3223-3000 Curso de zenity 09-10/01;
> - No RJ ligue (21) 2561-0867. Curso nos dias 5,6,12,13/12;
> - Turmas fechadas em outras cidades ligue (21) 8112-9988.
>
>
> 2009/11/19 César Vianna 
>
> >
> >
> > Estou tentando compactar arquivos com mais de um ano
> >
> > find -mtime +365|xargs -I '{}' tar --append --file=teste.tar.gz '{}'
> >
> > Mas, é gerado o erro abaixo
> >
> > tar: Impossível atualizar arquivos-tar compactados
> > tar: Erro não é recuperável: saindo agora
> >
> > Se eu uso
> >
> > find -mtime +365|xargs -I '{}' tar -czvf teste.tar.gz '{}'
> >
> > O tar vai substituindo o arquivo e no final tenho apenas o último arquivo
> > encontrado pelo find.
> >
> > Alguma dica?
> >
> > --
> > César Vianna
> > ---
> > Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo
> às
> > unidades; os agenciamentos móveis aos sistemas.
> > Gilles Deleuze & Felix Guattari
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> 
>
> -
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> -
> Sair da lista: shell-script-unsubscr...@yahoogrupos.com.br
> -
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> -
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>
>


-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



[shell-script] Rsync + xargs + argument list too long

2009-11-20 Por tôpico César Vianna
Pessoal, tenho um script que grava em um arquivo uma série (muito grande) de
comandos rsync conforme padrão abaixo

rsync opções u...@servidor:caminho/* destino

Após, outro script executará esses comandos da seguinte forma:

while read line
do
 echo $line|xargs -i -0 bash -c "{}"
done

Re: [shell-script] Rsync + xargs + argument list too long

2009-11-22 Por tôpico César Vianna
Pois é... "o problema" são dois...

1 - Os comandos possuem coringas.
Ex: rsync u...@ip:/tmp/teste/* /tmp
Isso causa o "argument list too long"
Por isso, usei o xargs

2 - Os caminhos possuem espaços e caracteres especiais
Ex: rsync u...@ip:/tmp/pasta\ com\ espaço
Se eu apenas executar o comando, os "\" são suprimidos. Pra isso, usei o -0
do xargs

Bom, mesmo assim, está ocorrendo "argument list too long"




2009/11/20 Julio C. Neves 

> Cesar,
> não entendi o que vc quer. Ou vc faz:
> cat arquivo_com_comandos | xargs -i bash -c "{}"
>
> Ou vc faz:
> while read line
> do
>$line
> done
> Abraços,
> Julio
> Cursos de Shell e Zenity em 2 fins de semana?
> - Em SP ligue (11) 2125-4747 Curso de 07 a 11/12;
> - Em DF ligue (61) 3223-3000 Curso de zenity 09-10/01;
> - No RJ ligue (21) 2561-0867. Curso nos dias 5,6,12,13/12;
> - Turmas fechadas em outras cidades ligue (21) 8112-9988.
>
>
> 2009/11/20 César Vianna 
>
> >
> >
> > Pessoal, tenho um script que grava em um arquivo uma série (muito grande)
> > de
> > comandos rsync conforme padrão abaixo
> >
> > rsync opções u...@servidor:caminho/* destino
> >
> > Após, outro script executará esses comandos da seguinte forma:
> >
> > while read line
> > do
> > echo $line|xargs -i -0 bash -c "{}"
> > done >
> > Essa construção está gerando "argument list too long". Por quê?
> >
> > Obs. Os caminhos possuem espaço e caracteres especiais "escapados". Por
> > isso, utilizo o -0 do xargs
> >
> > --
> > César Vianna
> > ---
> > Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo
> às
> > unidades; os agenciamentos móveis aos sistemas.
> > Gilles Deleuze & Felix Guattari
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> 
>
> -
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> -
> Sair da lista: shell-script-unsubscr...@yahoogrupos.com.br
> ---------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> -
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>
>


-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Re: Maiúscula e minúscula

2010-07-28 Por tôpico César Vianna
Resgatando a dificuldade já tratada...
O problema original era alterar nomes compostos em minúsculo, deixando a
primeira letra em maiúsculo.
Agora surgiu a seguinte variação:

:~$ echo "coordenacao de analise e instrucao de processos" | sed -r
's/\b[a-z]+/\u&/g'
Coordenacao De Analise E Instrucao De Processos

O problema é que o "De" e o "E" precisariam estar em minúscula.

Uma solução é no sed acima não considerar palavras com 1 ou 2 letras...

Mas, não consegui fazer essa alteração.




2008/4/4 Flavio Junior 

>   Um pouco mais simples, ainda com sed:
>
> $ cat xyz | sed -r 's/\b[a-z]+/\u&/g'
> Alfredo Morto
> Alberto Roberto
> Macaco Malandro Balh Ble
> Tatu Preguicoso
> Prego Batido
> Urangotango Chines
>
> \b == border (inicio de linha, espaço, tab ... essas coisa)
> \u == uppercase
> & == a regex que foi casada no primeiro campo...
>
> Ou seja:
> Case border+letra minuscula, imprima em uppercase o que foi casado.
>
> Sorte,
>
> Flávio do Carmo Junior aka waKKu
> #bash-br @ irc.freenode.net
>
> 2008/4/4 voyeg3r >:
>
> >
> >
> >
> >
> >
> >
> > Só para constar. A mesma solução usando o vim, para casos em que
> > você só tenha o vim seria assim:
> >
> > # abrir todos os arquivos
> > vim *.txt
> >
> > # disparar o comando bufdo
> >
> > :bufdo :%s/^./\U&/g | :wall
> >
> > # dar alguns enteres confirmando e finalmente digitar
> > :qall
> >
> > --- Em shell-script@yahoogrupos.com.br,
> "Ivan lopes"
> >  escreveu
> > >
> > > cat xyz | sed 's/\(^\)\?\([^ ]*\)/\u&/g'
> > > Alfredo
> > > Alberto
> > > Macaco
> > > Tatu
> > > Prego
> > > Urangotango
> > > Cesar Eduardo Motta Vianna
> > >
> >
> >
>  
>



-- 
César Vianna
---
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari
**
FISL11 - Forum Internacional Software Livre
Intl. Free Software Forum - http://www.fisl.org.br/
21~24::Julho||July::2010 - Porto Alegre - Brasil
**


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] livro sobre linux e shell

2008-01-10 Por tôpico César Vianna
O site do Júlio também tem tópicos interessantes

http://twiki.softwarelivre.org/bin/view/TWikiBar/WebHome

E sobre Linux em geral, utilizo o Foca Linux

http://focalinux.cipsga.org.br/gol.html


Abraços


On Jan 9, 2008 1:14 AM, newerton santos <[EMAIL PROTECTED]> wrote:

>   Olá Amigos,
> preciso de um livro sobre linux e shell que seja bom, alguem pode me
> indicar um?
>
> obrigado
> newerton
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>


-- 
Existem 11 tipos de pessoas:
As que entendem binário
As que não entendem
E as que nunca irão entender


[As partes desta mensagem que não continham texto foram removidas]



[shell-script] Formar CSV

2008-01-15 Por tôpico César Vianna
Pessoal, tenho um arquivo com o seguinte formato

uid: CPF
cn: NOME
mail: E-MAIL
ou: SETOR

Preciso fazer um csv com estas informações. No VI fiz com as seguintes
linhas

 :%s/^\(uid: .*\)\n\(cn:.*\)/\1;\2/g   #substitui a linha que começa com
uid, possui um \n e segue com cn pelo primeiro-resultado;segundo-resultado

 :%s/^\(uid: .*\)\n\(mail:.*\)/\1;\2/g

 :%s/^\(uid: .*\)\n\(ou:.*\)/\1;\2/g


Ok. Ao final, tenho o CSV.

Mas, quando fiz no bash, não funcionou.

ldapsearch -x -h IP -b BASE -LLL '(&(ou=*string*)(&(atributo=x)))' uid cn
mail ou|grep -v dn:|sed 's/^(uid: .*)\n(cn: .*)/"\1;\2"/g'

sed: -e expressão #1, caractere 32: invalid reference \2 on `s' command's
RHS


Alguma dica?


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Re: Formar CSV

2008-01-15 Por tôpico César Vianna
Ok. Quase tudo certo. Mas sobra uns separadores ao final...

ldapsearch | sed 's/^.*: \(.*\)/\1/' | paste -d";" - - - -

resultado

string1;string2;string3;string4$
;;;$

Por que sobra a quebra de linha mais os ;;;  ?

Tentei alterar o paste, mas não solucionou




2008/1/15 Fabiano Caixeta Duarte <[EMAIL PROTECTED]>:

>   --- Em shell-script@yahoogrupos.com.br,
> "César Vianna"
> <[EMAIL PROTECTED]> escreveu
>
> >
> > Pessoal, tenho um arquivo com o seguinte formato
> >
> > uid: CPF
> > cn: NOME
> > mail: E-MAIL
> > ou: SETOR
> >
> > Preciso fazer um csv com estas informações.
>
> Fala, Celsão!
>
> Resumindo, você precisa tirar os rótulos dos "campos" e juntá-los em
> uma linha, certo?
>
> Então faça isto:
> ldapsearch | sed 's/^.*: \(.*\)/\1/' | paste -d, - - - -
>
> Abraço!
>
> Fabiano.
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



[shell-script] Como usar o UNIQ em CSV

2008-01-23 Por tôpico César Vianna
Buenas !!

Tenho um csv com 5 campos. O terceiro são CPFs. Tenho que separar em dois
arquivos: um com os CPFs duplicados e outro com os CPFs únicos.

Fiz assim:

cut -d";" -f3 arquivo.csv | uniq -d

e

cut -d";" -f3 arquivo.csv | uniq


Ok. O problema é que eu perco o resto da linha. Tem alguma opção do uniq ou
outro comando para recuperar o conteúdo da linha? Como os grupos ( \1 ... )
em expressões regulares.


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Como usar o UNIQ em CSV

2008-01-23 Por tôpico César Vianna
O arquivo é da seguinte forma

Código;Nome;CPF;Endereço
001;João Silva;12345678900;Rua x
002;João Francisco Silva;12345678900;Rua x
003;José;98765432100;Rua y

O resultado esperado é separar

#CPF único
003;José;98765432100;Rua

e

#CPF duplicado
001;João Silva;12345678900;Rua x
002;João Francisco Silva;12345678900;Rua x


Acabei fazendo em duas etapas. Separei duas listas de CPFs com "uniq -u" e
"uniq -d" e depois fiz o seguinte script

#!/bin/bash
cat cpfs-duplicados.txt|
while read i
do
grep $i retirar-cpfs-duplicados.csv >> duplicados.csv
done
cat cpfs-unicos.txt|
while read i
do
grep $i retirar-cpfs-duplicados.csv >> unicos.csv
done


Ok,. Funcionou. Mas muito lento...



2008/1/23 Flavio Junior <[EMAIL PROTECTED]>:

>   Não entendi bem..
>
> mas veja as opções do sort e do uniq...
>
> Exemplo:
>
> sort
> -k, --key=POS1[,POS2] start a key at POS1, end it at POS2 (origin 1)
> -t, --field-separator=SEP use SEP instead of non-blank to blank transition
>
> uniq
> -f, --skip-fields=N avoid comparing the first N fields
>
> Sem um padrão do arquivo fica dificil..
> Vc passar dados dos outros impossivel...
>
> Então fica mais dificil ajudar, mas se puder montar algo com umas 4 ou
> 5 linhas no padrão e dados inuteis, eu tentaria ajudar mais..
>
> --
>
> Flávio do Carmo Júnior
>
> 2008/1/23 César Vianna <[EMAIL PROTECTED] 
> >:
>
> >
> >
> >
> >
> >
> >
> > Buenas !!
> >
> > Tenho um csv com 5 campos. O terceiro são CPFs. Tenho que separar em
> dois
> > arquivos: um com os CPFs duplicados e outro com os CPFs únicos.
> >
> > Fiz assim:
> >
> > cut -d";" -f3 arquivo.csv | uniq -d
> >
> > e
> >
> > cut -d";" -f3 arquivo.csv | uniq
> >
> > Ok. O problema é que eu perco o resto da linha. Tem alguma opção do uniq
> ou
> > outro comando para recuperar o conteúdo da linha? Como os grupos ( \1
> ... )
> > em expressões regulares.
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
>  
>


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Formatacao na impressão errata

2008-01-25 Por tôpico César Vianna
não sei se é a melhor alternativa , mas funciona

x=aaa;bbb

sed 's/;/\t/' <<< $x

aaa bbb





2008/1/25 Gemayel Alves <[EMAIL PROTECTED]>:

>
> nao foi os espacos por isso estou trocando por pontos.
>
> old..qtd:.41
> php..qtd:.1569
> pot..qtd:.5
> pub..qtd:.12
> rar..qtd:.38
> rpm..qtd:.1
> rsa..qtd:.224
> estete..qtd:.1
> testete..qtd:.159
> sh..qtd:.2054
> testete.qtd:.1
> sql..qtd:.21472
> tar..qtd:.67
> tgz..qtd:.3
> txt..qtd:.2085
> testete..qtd:.1
> vmx..qtd:.6
> zip..qtd:.113
>
> ps, ja tentei com tab echo -e "$variavel \t $variavel2" e nao funciona.
> __
> Receba GRÁTIS as mensagens do Messenger no seu celular quando você estiver
> offline. Conheça o MSN Mobile!
> http://mobile.live.com/signup/signup2.aspx?lc=pt-br
>  
>


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Formatacao na impressão errata

2008-01-25 Por tôpico César Vianna
engraçado... para mim funcionou


x="aaa;bbb";y="a;bb";z="aaa;ccc";sed "s/;/\t\t/" <<< $x;sed
's/;/\t\t/' <<< $y;sed 's/;/\t\t/' <<< $z

aaa bbb
a bb
aaa  ccc


obs... aqui no email que desalinha um pouco.

Ou você pode usar o tput cup lin col
para posicionar o cursor em um local da tela e depois dar o echo

http://twiki.softwarelivre.org/bin/view/TWikiBar/TWikiBarPapo009





2008/1/25 Gemayel Alves <[EMAIL PROTECTED]>:

>
> Não funciona pois aaa e bbb tem tamanhos variados. e oq preciso é de um
> alinhamento podendo ser metade da tela imprime aaa e a partir da outra
> metade imprime bbb.
> 
> > To: shell-script@yahoogrupos.com.br 
> > From: [EMAIL PROTECTED] 
> > Date: Fri, 25 Jan 2008 16:37:40 -0200
> > Subject: Re: [shell-script] Formatacao na impressão errata
>
> >
> >
> > não sei se é a melhor alternativa , mas funciona
> >
> > x=aaa;bbb
> >
> > sed 's/;/\t/' <<< $x
> >
> > aaa bbb
> >
> > 2008/1/25 Gemayel Alves>:
> >
> >>
> >> nao foi os espacos por isso estou trocando por pontos.
> >>
> >> old..qtd:.41
> >> php..qtd:.1569
> >> pot..qtd:.5
> >> pub..qtd:.12
> >> rar..qtd:.38
> >> rpm..qtd:.1
> >> rsa..qtd:.224
> >> estete..qtd:.1
> >> testete..qtd:.159
> >> sh..qtd:.2054
> >> testete.qtd:.1
> >> sql..qtd:.21472
> >> tar..qtd:.67
> >> tgz..qtd:.3
> >> txt..qtd:.2085
> >> testete..qtd:.1
> >> vmx..qtd:.6
> >> zip..qtd:.113
> >>
> >> ps, ja tentei com tab echo -e "$variavel \t $variavel2" e nao funciona.
> >> __
> >> Receba GRÁTIS as mensagens do Messenger no seu celular quando você
> estiver
> >> offline. Conheça o MSN Mobile!
> >> http://mobile.live.com/signup/signup2.aspx?lc=pt-br
> >>
> >>
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
> __
> Conheça o Windows Live Spaces, a rede de relacionamentos do Messenger!
> http://www.amigosdomessenger.com.br/
> 
>


[As partes desta mensagem que não continham texto foram removidas]



[shell-script] Redirecionar saída de um programa Java

2008-01-30 Por tôpico César Vianna
Pessoal, tenho um programa java (.class). Queria redirecionar a saída dele
para um arquivo. É possível no shell?

Tentei

java nome_programa > teste.txt

Mas não funciona. Imagino que seja por que o programa não roda no shell e
sim na VM.

Existe alguma alternativa, sem ter que alterar o programa?


Obs. Se eu estiver saindo do escopo da lista, só avisar.

Abraços


[As partes desta mensagem que não continham texto foram removidas]



[shell-script] Retirar tags html

2008-01-30 Por tôpico César Vianna
Preciso remover as tags de um html e só imprimir o texto.

cat teste.html

 abc  
 abcdef 

Tentei com:

sed "s/<.*>\(.*\)/\1/g" teste.html

mas como o * é guloso, o resultado é vazio.

tentei assim
sed "s/<.*>\(.*\)<\/.*>/\1/g" teste.html

mas o resultado é apenas a primeira ocorrência
abc


Alguma dica?


[As partes desta mensagem que não continham texto foram removidas]



[shell-script] Script de consulta LDAP lento

2008-03-27 Por tôpico César Vianna
Pessoal, tenho um arquivo "emails.txt" que possui um email por linha.
Preciso saber quais desses emails não estão em um LDAP.  Fiz o script
abaixo. Funciona, porém MUITO lento. São uns 1 registros.

Será que não tem outra implementação mais rápida?


# testa se o email contido em emails.txt está no ldap (atributo sn). A linha
numEntries só é exibida pelo LDAP quando o registro é encontrado.

for i in `cat emails.txt`
do
ldapsearch -x sn=$i|if grep numEntries; then echo > /dev/null; else
echo $i >> nao_existe.txt; fi
done



Abraços


[As partes desta mensagem que não continham texto foram removidas]



[shell-script] Maiúscula e minúscula

2008-04-03 Por tôpico César Vianna
Opa!

Tenho um arquivo com uns 500 nomes completos (um em cada linha). Está tudo
em minúscula e preciso passar só a primeira letra de cada nome para
maiúscula.

Ex.

cesar eduardo motta vianna

passar para

Cesar Eduardo Motta Vianna


Tentei com sed e tr, mas não acertei a ER


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Maiúscula e minúscula

2008-04-03 Por tôpico César Vianna
A solução do vi funciona bem. Só não funcionou na linha de comando do shell,
dentro do vi foi legal.

Obs. Agora to pesquisando para saber o que aquela expressão faz

Valeu!

2008/4/3 Ricardo Brito do Nascimento <[EMAIL PROTECTED]>:

>   A dúvida não foi minha, mas gostei te tua solução entretanto se o nome
> tiver mais de 1 palavra substitui apenas a primeira. como fazer para
> substituir todas?
> ricardo brito do nascimento
> Ricardo Brito Do Nascimento; ou melhor
> Ricardo Brito do Nascimento
>
> --
> Ninguém há semelhante a ti, ó Senhor; tu és grande, e grande o poder
> do teu nome. (1ªJeremias 10.6)
> No one is like you, O Lord; you are great, and your name is mighty in
> power. (1ªJeremiah 10.6)
> Jesus te ama, aceite-O! Jesus loves you, accept you Him!
>
> Flavio Junior escreveu:
>
> >
> > Soluçãozinha feia..
> > Deve vir algo melhor por ai, mas é uma opção:
> >
> > $ echo flavio | awk '{X=substr($1,1,1); sub(/^./,toupper(X)); print}'
> > Flavio
> >
> > $ cat xyz
> > alfredo
> > alberto
> > macaco
> > tatu
> > prego
> > urangotango
> >
> > $ awk '{X=substr($1,1,1); sub(/^./,toupper(X)); print}' xyz
> > Alfredo
> > Alberto
> > Macaco
> > Tatu
> > Prego
> > Urangotango
> >
> > Sorte ai,
> >
> > Flavio do Carmo Junior
> >
> > 2008/4/3 César Vianna <[EMAIL PROTECTED] 
> > <mailto:cesar.vianna%40gmail.com >>:
> > >
> > >
> > >
> > >
> > >
> > >
> > > Opa!
> > >
> > > Tenho um arquivo com uns 500 nomes completos (um em cada linha).
> > Está tudo
> > > em minúscula e preciso passar só a primeira letra de cada nome para
> > > maiúscula.
> > >
> > > Ex.
> > >
> > > cesar eduardo motta vianna
> > >
> > > passar para
> > >
> > > Cesar Eduardo Motta Vianna
> > >
> > > Tentei com sed e tr, mas não acertei a ER
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> >
> >
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Saida inesperada do while

2008-04-04 Por tôpico César Vianna
tente

ssh ${WIP1} < /dev/null
FINAL


2008/4/4 Marcos Gattermeyer <[EMAIL PROTECTED]>:

>   Ola a todos,
>
> Tenho um arquivo de filiais + Ips chamado loja :
>
> 01 192.168.0.1
> 02 192.168.0.2
> 05 192.168.0.5
> .
> .
> 70 192.168.0.70
>
> Montei um script para verificar se a filial esta ativa :
>
> #!/bin/bash
> while read LINHA ; do
> WFILIAL=`echo $LINHA | awk '{print $1}'`
> WIP1=`echo $LINHA | awk '{print $2}'`
> if ! ssh ${WIP1} ls > /dev/null ; then
> continue
> else
> echo "Filial $WFILIAL esta ativa" >> noar.txt
> fi
> done < $LIST
>
> Acontece que no comando ssh para cada filial necessito a digitacao de
> uma senha, ai o script sai fora do while.
>
> É inevitavel o uso do ssh e do login para o processo.
>
> Sera que existe alguma forma de evitar esta saida inesperada ?
>
> Obrigado
>
> Marcos
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Hostname

2008-04-04 Por tôpico César Vianna
É por aí...

tam=`expr length $dominio`;if egrep "^[aA0-zZ9][aA0-zZ9-]+[aA0-zZ9]" <<<
$dominio && [ $tam -lt 63 ]; then echo ok; else echo falhou; fi



2008/4/3 Filipe Esperandio <[EMAIL PROTECTED]>:

>   Olá,
>
> alguém tem uma expressão regular pronta pra validar hostname?
> Pensei em algo assim: ^[aA0-zZ9][aA0-zZ9-]+[aA0-zZ9]$
> Mas não sei limitar os 63 caracteres do label...
>
> Alguma sugestão melhorzinha?
>
> Abraços,
>
> --
> Filipe Gomes Esperandio
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



[shell-script] Teste Elinks

2008-04-14 Por tôpico César Vianna
Estou tentando fazer um script que teste um login de um site.
O login é realizado através do form abaixo



Mas não sei como fazer para chamar a página pelo elinks (ou links) e já
passar os dados para o form.


[As partes desta mensagem que não continham texto foram removidas]



[shell-script] Sed - troca apenas da primeira ocorrência

2008-04-29 Por tôpico César Vianna
Tenho um arquivo texto com o seguinte conteúdo

321
852
vazio
vazio
vazio


Quero trocar a primeira ocorrência de "vazio" por "qualquercoisa"

Fiz assim

sed "s/vazio/qualquercoisa/" estac.txt

e

sed "s/vazio/qualquercoisa/1" estac.txt


Mas em ambas opções ele troca todas as ocorrências de vazio

Sei que tem alguma opção para interromper na primeira ocorrência, mas não
estou lembrando. Como diz o Júlio: "Para o sed não ser guloso"


[As partes desta mensagem que não continham texto foram removidas]



Re: [shell-script] Sed - troca apenas da primeira ocorrência

2008-04-29 Por tôpico César Vianna
ok.

mas o resultado esperado seria:

teste
teste
qualquercoisa
a
a

Teria que apenas substituir a primeira linha encontrada e preservar as
demais



2008/4/29 Flavio Junior <[EMAIL PROTECTED]>:

>   q
>
> [EMAIL PROTECTED]:~]# echo -e 'teste\nteste\na\na\na'
> teste
> teste
> a
> a
> a
> [EMAIL PROTECTED]:~]# echo -e 'teste\nteste\na\na\na' | sed
> '/a/{s/.*/qualquercoisa/;q}'
> teste
> teste
> qualquercoisa
> [EMAIL PROTECTED]:~]#
>
> mim ser preguiçoso..
>
> Pra casar vazio pode usar: ^$
>
> --
>
> Flavio do Carmo Junior
>
> 2008/4/29 César Vianna <[EMAIL PROTECTED] 
> >:
>
> >
> >
> >
> >
> >
> >
> > Tenho um arquivo texto com o seguinte conteúdo
> >
> > 321
> > 852
> > vazio
> > vazio
> > vazio
> >
> > Quero trocar a primeira ocorrência de "vazio" por "qualquercoisa"
> >
> > Fiz assim
> >
> > sed "s/vazio/qualquercoisa/" estac.txt
> >
> > e
> >
> > sed "s/vazio/qualquercoisa/1" estac.txt
> >
> > Mas em ambas opções ele troca todas as ocorrências de vazio
> >
> > Sei que tem alguma opção para interromper na primeira ocorrência, mas
> não
> > estou lembrando. Como diz o Júlio: "Para o sed não ser guloso"
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
>  
>


[As partes desta mensagem que não continham texto foram removidas]



  1   2   >