O IFS (separador de campo) do shell por padrão é: 1º o espaço em branco, 2º o TAB e 3º o ENTER. Assim, sempre que ele achar um desses três vai considerar que acabou um campo e está começando outro. Podes mudar isso, setando o IFS para ser somente o ENTER:
IFS=" " for i in $(ls) do echo $i done Abraço, Amador Pahim ________________________________ De: Leonardo <aaa.leona...@gmail.com> Para: shell-script@yahoogrupos.com.br Enviadas: Terça-feira, 5 de Maio de 2009 10:49:52 Assunto: [shell-script] Trocar : por . em nomes de arquivos de um diretório Olá, Tenho um diretório que tem vários arquivos com : em algum lugar do nome. Esses arquivos são de nomes longos, com espaços separando as palavras. Ex.: "Nome: do arquivo.pdf" . Eu tentei mudar o caracter fazendo um for e usando tr, mas não funcionou porque o for i in `ls` itera em cima de cada palavra dos nomes do arquivos. Gostaria de saber como posso fazer para trocar o nome de cada arquivo que contenha ":" em um diretório, e trocar o ":" por ".". Atc, Leonardo Andrade. [As partes desta mensagem que não continham texto foram removidas] Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas]