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

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

Re: [shell-script] arquivos com espaco no nome


From: Julio Neves
Subject: Re: [shell-script] arquivos com espaco no nome
Date: Tue, 22 May 2001 16:06:14 -0300

Olá Fábio,
A linha abaixo deve fazer o pretendido de forma + rápida.

ls -1 *.oi | awk '{print $1"_"$2}'

[ ]s,
Julio


Favor responder a address@hidden
Para:   address@hidden
cc: 
Assunto:        [shell-script] arquivos com espaco no nome

Povo,


Considerem:

$ ls -Q *.oi
"quero mule boa.oi"  "ola.oi"

Usei -Q para quotear os nomes do arquivos.

--
Estou com o seguinte problema num trecho de script:

for X in `ls -Q *.oi`
do
   TESTE=`echo $X | tr ' ' '_'`
   echo Arquivo da vez: $TESTE
done
--
Saída:

Arquivo da vez: "quero
Arquivo da vez: mule
Arquivo da vez: boa.oi"
Arquivo da vez: "ola.oi"


Ou seja, a estrutura for está tratando cada palavra do nome
do arquivo como um elemento em si, mesmo estando eles entre
"quotes". Já tentei combinar o for com eval, mas sem sucesso.

Sugestões ?





From (no email address) Tue May 22 14:31:27 2001
Return-Path: <address@hidden>
X-Sender: address@hidden
X-Apparently-To: address@hidden
Received: (EGP: mail-7_1_3); 22 May 2001 21:31:26 -0000
Received: (qmail 84664 invoked from network); 22 May 2001 21:29:36 -0000
Received: from unknown (10.1.10.142) by m8.onelist.org with QMQP; 22 May 2001 
21:29:36 -0000
Received: from unknown (HELO perninha.conectiva.com.br) (200.250.58.156) by 
mta3 with SMTP; 22 May 2001 21:29:35 -0000
Received: from burns.conectiva (burns.conectiva [10.0.0.4]) by 
perninha.conectiva.com.br (Postfix) with SMTP id 4831916B32 for 
<address@hidden>; Tue, 22 May 2001 18:29:30 -0300 (EST)
Received: (qmail 9083 invoked by uid 0); 22 May 2001 21:27:56 -0000
Received: from verde.distro.conectiva (10.0.17.77) by burns.conectiva with 
SMTP; 22 May 2001 21:27:56 -0000
Date: Tue, 22 May 2001 18:37:22 -0300 (BRT)
X-Sender: verde@verde.distro.conectiva
To: address@hidden
Subject: Re: [shell-script] apagar linhas em branco
In-Reply-To: <address@hidden>
Message-ID: <Pine.LNX.4.21.0105221832340.827-100000@verde.distro.conectiva>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: 8BIT
X-eGroups-From: # aurelio marinho jargas <address@hidden>
From: # aurelio marinho jargas <address@hidden>

oi julio,

@ 18/5, Julio Neves:
> [/etc] time cat termcap | wc -l
>   10445
>
> real    0m0.047s
> user    0m0.020s
> sys     0m0.020s
> [/etc] time cat termcap | sed -n $> 10445
>
> real    0m0.057s
> user    0m0.040s
> sys     0m0.010s
>
> o sed NÃO é + rápido...

> É Aurélio mas se esta te derrubou, console-se comigo. Tb achava que o sed
> dava banho! Nem consigo ver explicação lógica. Será que o sed só é + veloz
> no tratamento de arquivos?
>
> Todos os teste que fiz em tratamento de arquivos grandes o resultado foi
> em 1o. o awk, em seguida o sed e depois o shell.

pois eu não sei...
ambos recebem o mesmo arquivão via | ...

mmmmmmmmmmmmmmmmm...

acho que achei a diferença:

[/livro] time cat /etc/termcap | wc -l
  10445

real    0m0.044s
user    0m0.000s
sys     0m0.040s
[/livro] time cat /etc/termcap | wc
  10445   46730  434898

real    0m0.073s
user    0m0.050s
sys     0m0.030s
[/livro] time cat /etc/termcap | sed -n $10445

real    0m0.066s
user    0m0.040s
sys     0m0.010s



quando ele procura só o número de linhas é mais rápido (claro)
talvez ele seja mais rápido, por quando ser chamado com o -l nem
fazer parsing do arquivo, apenas consultar o número de linhas e sair,
sem nem carregar em memória o que tem nelas.

esse é um chute de quem é ignorante em C e em ext2...




--
s·:(·>(·×^a]×http://www.verde666.org×^[:wq



reply via email to

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