Gozado, o que exige-se de um usuário de Windows é que saiba clicar no botão iniciar (ainda existe? Deixei de usar este "sistema" ainda na versão 95) e usar o pacote de escritórios da Microsoft. Já o que se exige de um usuário GNU/Linux é que ele tenha seja onisciente em computação... E isso é bom. Um dia chego à perfeição. :-D
Tive problemas com com arquivos cujos nomes continham espaços.
O delimitador de campos do bash é o espaço. Para lidar com nomes e strings contendo espaço (e fazer com que tudo seja interpretado como um único campo), podemos mudar para próxima linha.
A variável IFS é a responsável para mudar este delimitador.
Ao digitar no bash (por uma sessão), ou no script
altera-se o delimitador de campo, e aí conseguimos processar strings que contenham espaço, como nomes de arquivos com espaço.IFS=$'\n' (ou IFS=$ \n) ,
\n é o caractere de próxima linha também no bash (velho conhecido de quem usa C).
Atenágoras,
ResponderExcluirPrecisava converter um conjunto de 1000 arquivos *.eml para maildir.
O problema era que quando eu fazia o looping com for dava merd.., porque o
for considera o separador IFS para fazer a separação dos itens da lista.
Por sorte, me deparei com seu post e usando sua dica consegui fazer a conversão de todos arquivos de uma só vez:
IFS=$'\n'
for i in $(ls | grep eml); do getmail_maildir ~/remota/homedata/offlineimap/pendentes/ < $i ; done