sente para quem gosta de shell script.
--
Felipe Kellermann
-
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é
Reinaldo,
Já chegou a ver a opção -o (one line)?
--
Felipe Kellermann
-
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir est
té hoje serem repetidos sem muita diversidade.
--
Felipe Kellermann
-
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regr
o por uma limitação da bash que outros shells já não têm mais há
uma década. Para quem quiser usar bash e ainda assim ter floats, eu
recomendaria "bashdiff" (ou zsh, ou até (pd)ksh!).
--
Felipe Kellermann
-
Esta lis
prefiro usar só os shells. Usando
programas externos pode ser melhor usar Perl ou Python ou AWK (apesar de
o bc ser o único "padronizado")...
--
Felipe Kellermann
-
Esta lista não admite a abordagem de outras ligua
o bc. Em zsh dá para fazer em uma linha (mesmo
sem converter para binário), mas eu não me importo muito com o tamanho,
atualmente; importo-me mais com a facilidade/clareza de leitura.
--
Felipe Kellermann
-
Esta lista não
valor hexadecimal de 32bits para CIDR.
# Felipe Kellermann
function hexa_para_cidr
{
local mascara=$1
local cidr=0
local base=0x8000
shift
while [ $((mascara & base)) ]; do
cidr=$((cidr + 1))
base=$((base >> 1))
done
printf &
o | exclusivo,
$ printf "%x\n" $((0x1138 ^ 0x807f))
9140
1 exclusivo 8 é 9 (faça também printf %x $((2#0001 ^ 2#1000)))
1 exclusivo 0 é 1 (faça também printf %x $((2#0001 ^ 2#)))
3 exclusivo 7 é 4 (faça também printf %x $((2#0101 ^ 2#0111)))
8 exclusivo f é 7 (faça também prin
; 32768
Agora convertido tem o valor convertido.
$ printf "Valor convertido: %d\n" $convertido
Valor convertido: 8000
Recomendo o uso de zsh, que tem todo o suporte a conversões de bases tudo
buildin (base#, base##, [#base], [##base], etc). Boa sorte com os teus
trabalhos com tc/ip
header IP). Seria interessante
tu pegares o offset (último valor do match) para identificar o tipo de
dado que está sendo trabalhado. Observação: iproute permite sem problemas
a especificação de offsets negativos para poder pega coisas antes do
header IP, o que torna a coisa
ara usar bc e não shell?
% echo $((0x8001 & 0xff00))
32768
% echo $((16#8000))
32768
--
Felipe Kellermann
-
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir e
ernativa, nos BSDs também é possível usar o fstat. Vai ter o mesmo
efeito da tua sugestão com lsof mas é padrão nos sistemas (lsof é padrão
em alguns BSDs mesmo, com o OS X ;-)). O código de retorno do lsof também
é consistente com os resultados, o que não é o caso dos fstats...
--
Felipe Kellermann
; | tr "${_token}" " ")
do {
eval "${_arrayName}[${n}]="${_strtmp}""
let n=n+1
} done
}
OBS: Não envie a mensagem para múltiplas listas, por favor.
--
Felipe Kellermann
stão. A função e exemplo iniciais que
tu enviou funcionam sem problemas. Qual seria o caso em que não funciona?
--
Felipe Kellermann
-
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Q
On Fri, 21 Jul 2006 1:58pm -0300, Felipe Kellermann wrote:
> % stat -H messages /var/log/messages
> % print $messages[link]
> 1713508
>
> Assim $messages[link] tem o tamanho do arquivo em bytes. A
s/link/size/
--
Fe
stat (coreutils) no Linux, funciona em bash/zsh/ksh/etc:
% var=$(stat -c %s /var/log/messages)
% echo $var
1713508
--
Felipe Kellermann
-
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C
nho o teu ls fechando os descritores ;-)
Mas um comentário sobre este teste: Neste caso, se a conta do usuário for
tipo Maildir em /var/mail, o teste com -f não vai funcionar. Só usar -e.
--
Felipe Kellermann
-
Esta lista não admi
On Thu, 20 Jul 2006 5:34pm -0300, rafael.nery wrote:
> Não entendi.
> Como vou comparar da variável que tem os users com o /var/mail?
Faça:
if [ -e /var/mail/$usuario ]; then
existe...
else
não existe...
fi
--
Felipe Kell
.5
Endereço: 10.0.0.5
Endereço: 10.0.0.5
OBS: Lembre-se que no teu exemplo tu pode deixar de usar o cat e passar
direto o conteúdo do arquivo para o while read:
while read LINHA; do echo "IP: $LINHA"; done < ip_list
--
Felipe Kellermann
-
On Wed, 19 Jul 2006 7:57am -0300, João Bernardo Aversa wrote:
> Não esqueça de antes exportar a variavel $CVSROOT
>
> export CVSROOT=:pserver:[EMAIL PROTECTED]:/repositório
Olá,
Pode ser via -d também :-)
--
Felipe K
tu usa pserver, é só fazer "cvs login". Se tua dúvida é sobre como
passar uma senha via scripting para um comando de "login", procure no
histórico da lista sobre "expect".
Se é por SSH, tu pode usar um par de chave
On Tue, 18 Jul 2006 2:22am -0300, Herbert Alexander Faleiros wrote:
> On Tuesday 18 July 2006 00:59, Felipe Kellermann wrote:
> [cut]
> > A bash não tem suporte. Só ksh e zsh suportam floats.
>
>
> Você pode contornar isso com ferramentas como o dc:
>
> $ for(
dizendo:
> "division by 0 (error token is ".001")
A bash não tem suporte. Só ksh e zsh suportam floats.
--
Felipe Kellermann
-
Esta lista não admite a abordagem de outras liguagens de programação, como
per
i ter que passar para um programa qualquer (como o bc) para
obter o resultado.
--
Felipe Kellermann
-
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta
blema no meu ambiente.
Se tu ainda tiver algum problema ou quiser fazer alguma operação mais
complexa e tudo mais usando só shell, pode usar zsh:
% float var1=22 var2=7
% print $(($var1 / $var2))
3.1428571428571428
...
% printf "%2.5f\n" $(($var1 / $var2))
3.14286
5045714
0.67828074053782572
0.25024152731907634
0.36985652279932779
OBS: Aceita seeds, também, diferente de RANDOM que não tem seed nenhum.
--
Felipe Kellermann
-
Esta lista não admite a abordagem de outras liguagens de program
do e-mail que havia enviado.
Alguém tem um arquivo de todo o histórico da lista em mbox, por exemplo?
Lembro que alguém (não lembro quem) fazia uns pacotes com todo o conteúdo.
--
Felipe Kellermann
-
Esta lista não admite a abord
salvar...
voyeg3r,
Poderia procurar no histórico? Tenho quase certeza que já enviei uma
implementação de um quicksort ou algum outro em shell para a lista.
Se não encontrar eu posso procurar ele por aqui para enviar novamente.
--
On Wed, 12 Jul 2006 7:18pm -0300, Flavio Junior wrote:
> jah que falamos de outras soluçoes, vou por uma tambem:
>
> $ cat val.txt | tr '\n' "+" | bc
>
> O que não falta é formas de somar isso.. mas vamo faze uma longa
> thread com varias formas :)
Legal ;-) Em zsh, tendo este val.txt, dá pa
e/nee.1 teste/nee
mv -- blah.1 blah
mv -- fuubar.1 fuubar
--
Felipe Kellermann
-
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á mode
onar em bash, zsh e ksh.
valor="abcDEF012345.,[EMAIL PROTECTED]"
valor=${valor//[^[:digit:]]/}
--
Felipe Kellermann
-
Esta lista não admite a abordagem de outras liguagens de programação, com
ssociativas não precisam de módulos para
funcionarem. Há módulos muito bons, de fato, mas esta funcionalidade está
embutida (na gramática). Para ler sobre alguns módulos interessantes, eu
recomendaria o manual zshmodules(1).
Sobre a troca, não vais perder nada :-) Boa utilização,
--
Fe
denamento de
chaves e valores, buscas inversas, e muitas outras.
--
Felipe Kellermann
-
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir
ficar via _POSIX2_VERSION (edição). Por muitos anos este aviso foi
sendo feito. Vai ser feita uma breve modificação para suportar, se não
tiver nenhuma ambiguidade, os +N. Melhor é sempre usar "-n", mesmo,
--
Felipe Kellermann
-
ra head/tail nas próximas versões. Se tu quiser usar esta opção só
no tail/head, pode fazer:
_POSIX2_VERSION=199209 tail/head +N ...
--
Felipe Kellermann
-
Esta lista não admite a abordagem de outras liguagens de programação
-- arquivo3.txt arquivo3.doc
mv -- arquivo4.txt arquivo4.doc
--
Felipe Kellermann
-
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regr
e tem haver com localização. afinal por que vc imprime
> variaveis do tipo ponto flutuante com virgula ao inves de ponto?
Sim.
Depende do locale.
Ou:
% LANG=POSIX awk 'NR != 1 { soma2 += $2 ; print soma2,$2 }' temp.dat
--
Felipe Kellermann
--
lmente tu não leu toda a thread antes de fazer teus comentários...
--
Felipe Kellermann
-
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á mod
, ambos de sistemas. Os
livros deles têm tradução para português.
--
Felipe Kellermann
-
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir e
named pipe nos shells atuais (bash, zsh). Não
seria difícil de implementar (a zsh tem o módulo zsh/system para este tipo
de implementação de interface adicional) e seria interessante. Troca de
mensagens, filas, memória (variáveis?) compartilhadas, etc.
--
Fe
zsh, tambem, e ter floats sem fazer
coisas feias com seq/awk/bc/etc:
% for ((f = 1.0e+0; f <= 5.0e+0; f += 0.5e+0)); { print $f }
1.00
1.50
2.00
2.50
3.00
3.50
4.00
4.50
5.0
ecisar
fazer cópia/modificar/mover:
% sed -i 's/\(BOOTPROTO=\).*/\1dhcp/' teste
Se tu tiver Perl (deve ter), pode fazer via "Perl pie":
% perl -p -i -e 's/(BOOTPROTO=).*/$1dhcp/' teste
--
Felipe Kellermann
t;%s" "$now"
}
OBS: Prefira sempre usar $(), como tu usou na tua tentativa de pegar o
retorno, no lugar de ``. Assim a tua segunda tentativa vai funcionar:
% start_time=$(is_time)
% print $start_time
22:13:03
--
Felipe Kellermann
-
mpre o valor de $fuu_ e de $i. Juntos formam
novamente o 1, 2 e 3.
--
Felipe Kellermann
-
Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta
m ZSH nao precisa dos {}.
--
Felipe Kellermann
-
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á mode
F
ARQUIVO DIR1/ DIR3/
DIR COM ESPACO/ DIR2/ TEMP/
% for d in *(/); { print $d, $d[0]${(L)${d[2,$]:gs/ //}}; }
DIR COM ESPACO, Dircomespaco
DIR1, Dir1
DIR2, Dir2
DIR3, Dir3
TEMP, Temp
--
Felipe Kellermann
-
assim usar uma funcionalidade
similar (mais muito mais melhorada pelo proprio shell, que seria o lugar
correto de se fazer isto), o zsh tem o "zargs".
zargs -- /var/spool/postfix/deferred/*/* -- postcat > arq
OBS: Se nao me engano o postcat pode receber "argumentos"
t $estado[RS]
Rio Grande do Sul
% print ${estado[(R)São*]}
São Paulo
% print ${estado[(i)R?]}
RS
% print [EMAIL PROTECTED]
Rio Grande do Sul
--
Felipe Kellermann
-
Esta lista não admite a abordagem de ou
ó o caso de trocar teu ls por find.
--
Felipe Kellermann
-
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta reg
utes'
2008/03/03-21:07
E, portanto, tu pode fazer diferênças, comparações, etc. entre datas
transformando (formatação) de data para timestamp e de timestamp novamente
para data. Mas muito legal teu script. Referência...
--
Felipe Kellermann
--
On Wed, 1 Mar 2006 11:39am -0300, Felipe Kellermann wrote:
> OBS: E a interpretação não é de "`e' zero ou mais". Há diferenças entre
> expressões regulares e globbing. Em um glob o teu "te*" significa apenas o
> literal "te" seguido de qualquer cois
ou mais". Há diferenças entre
expressões regulares e globbing. Em um glob o teu "te*" significa apenas o
literal "te" seguido de qualquer coisa.
--
Felipe Kellermann
-
Esta lista não admite a abordagem d
on/x-dosexec; then
mv $arquivo /outro/diretorio
if
done
--
Felipe Kellermann
-
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á
diretorio/**/(.x) /outro/diretorio
Ou opcionalmente juntar os dois:
(Move todos arquivos de diretorio/ que acabam com .com ou .exe e que são
arquivos normais com o bit de execução ligado ou para o dono, ou para o
grupo, ou para outros, e
etorio -type f | xargs mv --target-directory=/outro/diretorio
Em geral eu prefiro (em zsh) só shell
% mv /diretorio/**/*(.) /outro/diretorio
--
Felipe Kellermann
-
Esta lista não admite a abordagem de outras liguagens de p
$ x=1; x=2 lala; echo $x
2
2
A zsh, por exemplo, tem alguns modificadores de parametros (variaveis) que
podem ser usados para modificar e trabalhar com estes comportamentos, como
o "hide", por exemplo. Como referencia de leitura (para o assu
7;reply=(${REPLY}{,})':)
E em qualquer outro shell (bash, ksh, etc), poderia ser assim, um pouco
menos bonito
for i in *.jpg; { printf "%s\n" "$i" "$i"; }
--
Felipe Kellermann
-
Esta l
On Thu, 16 Feb 2006 10:31pm -0300, Gentil de Bortoli Júnior wrote:
> Hm. Creio que você queira isso:
>
> mkdir i{3,4,5,6}86
Em bash3 e zsh,
mkdir i{3..6}86
--
Felipe Kellermann
-
Esta lista não admite a abo
r de Nome?
--
Felipe Kellermann
-
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év
sh, claro):
bash3-patched$ printf "%05d\n" {10..15}
00010
00011
00012
00013
00014
00015
bash3-patched$
Similar da zsh, de onde a funcionalidade anterior da bash3 foi copiada:
orchid% printf "%05d\n" {10..15}
00010
00011
00012
00013
00014
00015
o
ipo de padrao. O shell nao interefere em nada. Seria
interessante ver o significado deste sufixo-com-pontos.
--
Felipe Kellermann
-
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem in
o ha nenhuma definicao sobre
suporte a ponto flutuante em shell. Alguns shells implementam. Em zsh, por
exemplo:
orchid% print $((1.5 * 3 - .2))
4.2998
--
Felipe Kellermann
-
Esta lista não admite a abordag
shell com redir.
--
Felipe Kellermann
-
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 se
63 matches
Mail list logo