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

[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



reply via email to

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