Mauricio wrote:
Olá pessoas... há alguns dias me deparei com o seguinte problema:
imaginem um diretório com três arquivos:
1.mid
2.mid
3.mid
para obter uma lista sem a extensão eu uso:
1)
for i in $(ls *.mid); do echo ${i%%.mid}; done;
ou
2)
for i in $(ls *.mid | sed s/.mid//); do echo $i; done;
ambos me retornam o seguinte em máquinas fedora, ubuntu, debian e kurumin:
1
2
3
O caso é que em meu slackware 10.1 kernel 2.4.31 (no 2.3.29 era a mesma
coisa) e na minha máquina no trabalho também o segundo retorna a lista
sem o corte:
1.mid
2.mid
3.mid
Atualizei o pacote sed, inclusive para as mesmas versões das outras
máquinas em que a linha funciona e nada. A pergunta é a seguinte:
Onde devo procurar a solućão? Atualizar o bash, o kernel, sei lá o que...
Espero que alguém possa me ajudar...
Abraćo,
Ricio
Oi Riccio, tudo bom ? Achei estranho e testei os dois comandos no meu
slackware 10.1
está tudo tranquilo.
bash-3.00$ for i in $(ls *.mid | sed s/.mid//); do echo $i; done;
1
2
3
bash-3.00$ for i in $(ls *.mid); do echo ${i%%.mid}; done;
1
2
3
bash-3.00$
versões dos softwares :
bash-3.00$ bash --version
bash --version
GNU bash, version 3.00.15(2)-release (i486-slackware-linux-gnu)
Copyright (C) 2004 Free Software Foundation, Inc.
bash-3.00$
sed --version
sed --version
GNU sed versão 4.0.9
Copyright (C) 2003 Free Software Foundation, Inc.
Este programa é Software Livre. Veja os fontes para conhecer as condições
de cópia. NÃO há garantias, nem mesmo para os aspectos mercantis ou de
atendimento a finalidades específicas, tanto quanto a lei permita.
bash-3.00$
é isto, qualquer coisa, tamos aí :-)
abraços,