[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: RES: [shell-script] Acho que eh eval
From: |
Gustavo Chaves |
Subject: |
Re: RES: [shell-script] Acho que eh eval |
Date: |
28 Apr 2005 16:10:22 -0300 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.4 |
>>>>> On Thu, 28 Apr 2005 15:16:09 -0300, Julio Cezar Neves - DATAPREVRJ
>>>>> <address@hidden> said:
> Fala Gustavo,
> achei muito bacana sua exposição, mas não estou entendendo mais nada pelo
> seguinte: até onde eu saiba, uma das grandes vantagens do xargs é que ele
> trata simultaneamente a maior massa de dados possível (limitado pela memória
> ou parâmetro do sistema), exceto qdo vc usa as opções -l ou -n qdo vc indica
> qtas informações ou linhas vc deseja tratar.
O problema é a opção -i. Veja o que diz o man:
--replace[=replace-str], -i[replace-str]
Replace occurences of replace-str in the initial
arguments with names read from standard input. Also,
unquoted blanks do not terminate arguments. If
replace-str is omitted, it defaults to "{}" (like for
`find -exec'). Implies -x and -l 1.
Viu? Ela implica em '-l 1'.
> Mas somente como complemento, veja a execução no ambiente de teste:
Prompt> grep -f <(cat Relatorio_de_nomes_incompleto.txt | xargs -i echo
> ^{}) <(ls --color=none)
> AeroSmith
> Jefferson
> Jurema
Prompt> ls | grep -f <( <Relatorio_de_nomes_incompleto.txt xargs -i echo
> ^{})
Prompt> ls | grep -f <(sed 's/^/\^/' Relatorio_de_nomes_incompleto.txt)
> Ou seja: teóricamente a sua solução está perfeita, mas no meu velho Bash não
> funciona e este é um problema que freqüentemente me defronto, deveria
> funcionar, não funciona e não sei a quem recorrer devido à especificidade.
Esquisito. Aqui funciona. (Aliás, depois de já ter cometido mais de
uma gafe mandando scripts errados pra lista eu procuro sempre testar
aqui antes de postar. :-)
Veja:
gnu$ uname -a
Linux gnu.cpqd.com.br 2.6.8-1-686 #1 Thu Nov 25 04:34:30 UTC 2004 i686
GNU/Linux
gnu$ bash --version
GNU bash, version 2.05b.0(1)-release (i386-pc-linux-gnu)
Copyright (C) 2002 Free Software Foundation, Inc.
gnu$ ls -l
total 32
drwxrwxr-x 2 gustavo gustavo 4096 2005-04-28 12:56 AeroSmith
drwxrwxr-x 2 gustavo gustavo 4096 2005-04-28 12:56 Jefferson
drwxrwxr-x 2 gustavo gustavo 4096 2005-04-28 15:15 Jeffeso
drwxrwxr-x 2 gustavo gustavo 4096 2005-04-28 12:56 Jurema
-rw-rw-r-- 1 gustavo gustavo 24 2005-04-28 12:56
Relatorio_de_nomes_incompleto.txt
gnu$ ls | grep -f <( <Relatorio_de_nomes_incompleto.txt xargs -i echo
^{})
AeroSmith
Jefferson
Jeffeso
Jurema
gnu$ ls | grep -f <(sed 's/^/\^/' Relatorio_de_nomes_incompleto.txt)
AeroSmith
Jefferson
Jeffeso
Jurema
Gustavo.