[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [shell-script] Arquivo em bash
From: |
Julio Cezar Neves - DISB.O |
Subject: |
RE: [shell-script] Arquivo em bash |
Date: |
Thu, 3 Jan 2002 14:13:52 -0300 |
-----Original Message-----
From: # aurelio marinho jargas [mailto:address@hidden]
Sent: Thursday, January 03, 2002 12:52 PM
To: address@hidden
Subject: RE: [shell-script] Arquivo em bash
graaaaaaaaaande julio,
@ 3/1, Julio Cezar Neves - DISB.O:
> Pô Gente!! dd é apelação!!!!!
hehehe, foi ele quem começou!!! num briga com eu.
> Já que tocaram neste assunto, vou mandar uma rotininha que usa dd e é
muito
> útil para os programadores de bourne e korn Shell . Ela serve para ler
> caracter a caracter. O pessoal do Linux não precisa dela, o bash2
incorpora
> uma opção no cmd read que faz este papel. Qual é mesmo esta opção
> Aurélio/Eliphas?
tá no próprio read, a opção é -n, para especificar o número de
caracteres a serem lidos.
-t timeout e -d delimiter tb são show.
aê julião, então temos OUTRA solução pra o problema (bash2):
read -n1 LETRA < ARQUIVO
Pois é Aurélio, pode também fazer:
getc `cat ARQUIVO`
As soluções são infinitas ...
[ ]s,
Julio
que tal um pegar-primeira-letra-HOWTO? &:)
> getc ()
> {
> stty raw
> eval $1="`dd bs=1 count=1 2>/dev/null | tr '\015' '\012'`"
> stty cooked
> }
>
>
> -----Original Message-----
> > > > > É o seguinte: como é que eu faço em bash para jogar a primeira
letra
> > > > > da primeira linha de um arquivo texto em uma variável??
> > > > LETRA=`sed -n '1 s/^\(.\).*$/\1/p'`
> > > > Essa é simples, vou deixar quem não sabe fazer descobrir sozinho ':)
> > > LETRA=`sed q ARQUIVO | cut -c1`
> > Vou me vingar:
> > LETRA=`awk -F"\n" '{print substr($1,1,1);exit;}' ARQUIVO`
> ah é, então tóma!
> LETRA=`dd if=ARQUIVO bs=1 count=1 2>&-`
--
http://verde666.org s/click/^a]/;^[:wq
Sair da lista: address@hidden
Banco Dados: http://www.egroups.com/group/shell-script
Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html
From (no email address) Thu Jan 03 08:42:05 2002
Return-Path: <address@hidden>
X-Sender: address@hidden
X-Apparently-To: address@hidden
Received: (EGP: mail-8_0_1_3); 3 Jan 2002 16:42:05 -0000
Received: (qmail 7658 invoked from network); 3 Jan 2002 16:42:05 -0000
Received: from unknown (216.115.97.172)
by m9.grp.snv.yahoo.com with QMQP; 3 Jan 2002 16:42:05 -0000
Received: from unknown (HELO perninha.conectiva.com.br) (200.250.58.156)
by mta2.grp.snv.yahoo.com with SMTP; 3 Jan 2002 16:42:04 -0000
Received: from burns.conectiva (burns.conectiva [10.0.0.4])
by perninha.conectiva.com.br (Postfix) with SMTP id 3DB4F38C3A
for <address@hidden>; Thu, 3 Jan 2002 13:42:01 -0300 (EST)
Received: (qmail 16735 invoked by uid 0); 3 Jan 2002 16:38:39 -0000
Received: from verde.conectiva (10.0.2.168)
by burns.conectiva with SMTP; 3 Jan 2002 16:38:39 -0000
Date: Thu, 3 Jan 2002 14:43:07 -0200 (BRST)
X-X-Sender: <verde@verde.conectiva>
To: "'address@hidden'" <address@hidden>
Subject: Re: sobre o dd
In-Reply-To: <address@hidden>
Message-ID: <Pine.LNX.4.33L.0201031437180.3818-100000@verde.conectiva>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: 8BIT
From: # aurelio marinho jargas <address@hidden>
X-Yahoo-Group-Post: member; ug194321
X-Yahoo-Profile: verde6666
oi renato,
@ 3/1, Renato Silveira:
> Tá interessante esta "briguinha" ;-) !
&:)
> Mas vcs "cobras" poderiam dar uma canja pra nos leigos é explicar pra que
> serve e como funciona o dd.
eu também sei quase nada sobre o dd, mas sei que o bichinho é
complicado. basicamente ele lê x bits de um arquivo e grava em
outro.
ele tem o if e of (infile e outfile) pra especificar os arquivos
de entrada e saída, o bs é o blocksize (tamanho da
leitura/escrita) e o count é quantas vezes vai rolar.
então o bs=1 count=1 lê de 1 em 1 bit, apenas uma vez.
se quisesse os 6 primeiros caracteres, poderia ser
bs=1 count=6
bs=2 count=3
bs=3 conut=2
bs=6 count=1
todos estes têm o mesmo efeito.
o padrão é if=/dev/stdin e of=/dev/stdout
isso é tudo que sei &:)
> > eval $1="`dd bs=1 count=1 2>/dev/null | tr '\015' '\012'`"
> > LETRA=`dd if=ARQUIVO bs=1 count=1 2>&-`
--
http://verde666.org s/click/^a]/;^[:wq