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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] 1001 maneiras de obter a primeira letra de um arquivo


From: Eliphas Levy Theodoro
Subject: Re: [shell-script] 1001 maneiras de obter a primeira letra de um arquivo
Date: Thu, 3 Jan 2002 14:52:21 -0200 (BRST)

# aurelio marinho jargas, @ 14:00:

> aí eliphas,
>
> botei um em python, tasca o perl aí &:)

LETRA=`sed -n '1 s/^\(.\).*$/\1/p'`
LETRA=`sed q ARQUIVO | cut -c1`
LETRA=`awk -F"\n" '{print substr($1,1,1);exit;}' ARQUIVO`
LETRA=`dd if=ARQUIVO bs=1 count=1 2>&-`
LETRA=`python -c "f=open('ARQUIVO');t=f.read();print t[0]"`

read -n1 LETRA < ARQUIVO

getc() { stty raw; eval $1="`dd bs=1 count=1 2>/dev/null |
         tr '\015' '\012'`"; stty cooked ; }
LETRA=`getc < ARQUIVO`

---<>---

Em perl é basicamente igual o awk:
LETRA=`perl -ne 'print substr($_,0,1);exit;' ARQUIVO`

ei, esse do python ficou muito grande Kra!!! Deixa aquele outro simples:
LETRA=`python -c "print open('ARQUIVO').read(1)"`

Dá pra fazer em uma linha com o ed? ':)


-- 
Eliphas

Anyone sending unsolicited bulk email (UBE, SPAM) to this address will
be charged a $25 handling fee plus a $5 network traffic fee per
started kilobyte. By extracting my address from this message or its
header, you agree to these terms.
Nevertheless, spammers trying to auto-extract addresses from this
message will definitely want to include address@hidden, address@hidden,
and address@hidden



From (no email address) Thu Jan 03 09:42:03 2002
Return-Path: <address@hidden>
X-Sender: address@hidden
X-Apparently-To: address@hidden
Received: (EGP: mail-8_0_1_3); 3 Jan 2002 17:42:02 -0000
Received: (qmail 16361 invoked from network); 3 Jan 2002 17:42:02 -0000
Received: from unknown (216.115.97.171)
  by m9.grp.snv.yahoo.com with QMQP; 3 Jan 2002 17:42:02 -0000
Received: from unknown (HELO perninha.conectiva.com.br) (200.250.58.156)
  by mta3.grp.snv.yahoo.com with SMTP; 3 Jan 2002 17:42:01 -0000
Received: from burns.conectiva (burns.conectiva [10.0.0.4])
        by perninha.conectiva.com.br (Postfix) with SMTP id 2D9B938C50
        for <address@hidden>; Thu,  3 Jan 2002 14:41:57 -0300 (EST)
Received: (qmail 23966 invoked by uid 0); 3 Jan 2002 17:38:35 -0000
Received: from verde.conectiva (10.0.2.168)
  by burns.conectiva with SMTP; 3 Jan 2002 17:38:35 -0000
Date: Thu, 3 Jan 2002 15:43:02 -0200 (BRST)
X-X-Sender:  <verde@verde.conectiva>
To: <address@hidden>
Subject: Re: [shell-script] 1001 maneiras de obter a primeira letra de um
 arquivo
In-Reply-To: <Pine.LNX.4.43L.0201031429240.6150-100000@elisangela.intranet>
Message-ID: <Pine.LNX.4.33L.0201031537270.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


ed Kra!!!

@ 3/1, Eliphas Levy Theodoro:
> LETRA=`sed -n '1 s/^\(.\).*$/\1/p'`
> LETRA=`sed q ARQUIVO | cut -c1`
> LETRA=`awk -F"\n" '{print substr($1,1,1);exit;}' ARQUIVO`
> LETRA=`dd if=ARQUIVO bs=1 count=1 2>&-`
> LETRA=`python -c "print open('ARQUIVO').read(1)"`
> LETRA=`perl -ne 'print substr($_,0,1);exit;' ARQUIVO`
>
> read -n1 LETRA < ARQUIVO
>
> getc() { stty raw; eval $1="`dd bs=1 count=1 2>/dev/null |
>          tr '\015' '\012'`"; stty cooked ; }
> LETRA=`getc < ARQUIVO`


> Dá pra fazer em uma linha com o ed? ':)

dá!!!
LETRA=`echo '1s/^\(.\).*/\1' | ed -s ARQUIVO`

(ao não especificar a barra que fecha o s/// ele dá print
automático, maaaaassa)


por falar nisso, sempre tive vontade de ver uma página de
programação que fosse dividida por tarefas e tivessem exemplos de
como resolvê-la, em várias linguagens de programação.

isso é exatamente o que estamos fazendo aqui.

TAREFA: pegar a 1ª letra de um arquivo
COMOFAZER: ...


alguém já viu algum saite assim?
se não tiver um, vamos fazer?

tipo, uma central definitiva de trechos de código do tipo
"como faço para..."

o que acham?


-- 
http://verde666.org s/click/^a]/;^[:wq



reply via email to

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