On Fri, 2 Feb 2007 10:38:21 -0200
"Julio C. Neves" <[EMAIL PROTECTED]> wrote:
> Herbert,
> então teste assim:
>
> xargs -i sed 's#tmp/.*/\(.*\).ereg#\1.ereg \1#g' <<< {}
>
> Se funcionar (e deve funcionar!) será mais rápido pois evitará a criação de
> duas instâncias do Shell.
>
> O nome disso é "Here Strings" e está descrito e exemplificado na mesma
> página
> <https://twiki.softwarelivre.org/bin/view/TWikiBar/TWikiBarBirinaite>que
> vc viu a explicação sobre o xargs.
Julio
Apesar de ter visto isso no Cantinho do Shell, não
lembrei. Mas não deu certo. Não retonou nada aqui.
$ find tmp/baixas/ -type f -name "*.pdf" | xargs -i sed
's#tmp/.*/\(.*\).pdf#\1.pdf \1#g' <<< {}
$ echo $?
0
Se mudar para xargs -i sed "'s#tmp/.*/\(.*\).pdf#\1.pdf \1#g' <<< {}",
retorna erro para cada linha:
sed: -e expressão #1, caractere 1: unknown command: `''
Deu certo com o '-i bash -c'
xargs -i bash -c "sed 's#\(tmp/.*/\)\(.*\).pdf#cp \1\2.pdf \2#g' <<< {} "
Lembrei do '<()' que conheci aqui na lista.
$ sed 's#\(tmp/.*/\)\(.*\)#cp \1\2 testes/\2.txt#g' <(find tmp/baixas/ -type f
-name "*.pdf") | sh
$ find tmp/baixas/ -type f -name "*.pdf" | xargs -i bash -c " sh <(sed
's#\(tmp/.*/\)\(.*\).pdf#cp \1\2.pdf testes/\2#g' <<< {} )"
[]
--
Herbert Parentes Fortes Neto (hpfn)
Linux user number 416100
0x9834F79E -- http://pgp.mit.edu/
[As partes desta mensagem que não continham texto foram removidas]