[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [shell-script] Arquivo em bash
From: |
Eliphas Levy Theodoro |
Subject: |
RE: [shell-script] Arquivo em bash |
Date: |
Thu, 3 Jan 2002 13:50:21 -0200 (BRST) |
Julio Cezar Neves - DISB.O, @ 13:40:
> Pô Gente!! dd é apelação!!!!!
É nada, mas quase que eu apelo de verdade e jogo um perl aqui ':)
> 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?
>
> [ ]s a todos,
> Julio
A opção -n do read:
$ echo -e "lala\nlele" | while read -n 1 char; do echo $char; done
l
a
l
a
l
e
l
e
$
> getc ()
> {
> stty raw
> eval $1="`dd bs=1 count=1 2>/dev/null | tr '\015' '\012'`"
> stty cooked
> }
Pra que serve o \015 \012? :)
--
Eliphas
From (no email address) Thu Jan 03 07:50:42 2002
Return-Path: <address@hidden>
X-Sender: address@hidden
X-Apparently-To: address@hidden
Received: (EGP: mail-8_0_1_3); 3 Jan 2002 15:50:44 -0000
Received: (qmail 55001 invoked from network); 3 Jan 2002 15:50:42 -0000
Received: from unknown (216.115.97.167)
by m11.grp.snv.yahoo.com with QMQP; 3 Jan 2002 15:50:42 -0000
Received: from unknown (HELO perninha.conectiva.com.br) (200.250.58.156)
by mta1.grp.snv.yahoo.com with SMTP; 3 Jan 2002 15:50:40 -0000
Received: from burns.conectiva (burns.conectiva [10.0.0.4])
by perninha.conectiva.com.br (Postfix) with SMTP id 6233C38C40
for <address@hidden>; Thu, 3 Jan 2002 12:50:38 -0300 (EST)
Received: (qmail 8699 invoked by uid 0); 3 Jan 2002 15:47:16 -0000
Received: from verde.conectiva (10.0.2.168)
by burns.conectiva with SMTP; 3 Jan 2002 15:47:16 -0000
Date: Thu, 3 Jan 2002 13:51:44 -0200 (BRST)
X-X-Sender: <verde@verde.conectiva>
To: <address@hidden>
Subject: RE: [shell-script] Arquivo em bash
In-Reply-To: <53EFD9E3C76F5D40AB14E9775CDFC9FB02D77AFB@wtrjo093>
Message-ID: <Pine.LNX.4.33L.0201031344550.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; u=67194321
X-Yahoo-Profile: verde6666
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
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