O seu script é uma fonte notável de estudo. Agora já sei por quais
comandos procurar a referência.
Entretanto, fiquei a pensar que talvez esteja querendo utilizar o
Shellscript para algo que talvez ele não seja tão bom. Pelo que
entendi, o comando "sed", a cada iteração, processa o arquivo inteiro.
A ideia é processar livros. Imagine quantas linhas terá um livro de
700 páginas e qual será o desempenho se a cada iteração tiver de ler
as 700 páginas. Neste caso, talvez seja mais eficiente partir para o
Pascal.
Mas independentemente disso, estudarei o script, pois o que daí se
aprende não é pouco. O comando "sed" parece maravilhoso!
Muito, muito obrigado pela atenção.


Em 14/01/13, Humberto Fraga<[email protected]> escreveu:
> Luciano,
>
> provavelmente em um grupo de Shellscript você vai encontrar alguma ajuda
> mais precisa, mas vou mostrar aqui o que pude investigar com pouco tempo.
>
> No shell, você não consegue exatamente iterar pelas linhas de um arquivo.
> Mas é possível ler apenas determinadas linhas. Dessa forma, você vai poder
> usar uma variável como controle para saber em que linha você está.
>
> Fiz um script rudimentar e coloquei no pastebin:
> http://pastebin.com/dRDHkk90 (ele apenas tenta fazer o que você descreveu,
> mas não incluí nenhum teste para saber se os parâmetros fornecidos são
> válidos).
>
>
> Em 14 de janeiro de 2013 13:25, luciano de souza
> <[email protected]>escreveu:
>
>> Caros,
>> Desejo criar um Shellscript que realize as seguintes tarefas:
>> 1. Lê um arquivo de texto;
>> 2. Separa-o em uma coleção de arquivos com número determinado de linhas;
>> 3. Coloca no início de cada arquivo, o nome do arquivo-pai sem a
>> extensão, mas seguido de um número sequencial.
>>
>> Este é o início para que consiga preparar um arquivo de texto para
>> conversão em audiolivro utilizando a síntese de voz do Espeak. Suponha
>> o seguinte comando:
>>
>> audiobook -i "Os miseráveis.txt" -s 200
>>
>> Como resultado ele deveria produzir:
>>
>> Os miseráveis01.txt
>> Os miseráveis02.txt
>> Os miseráveis03.txt
>>
>> No início, por exemplo, de "os miseráveis03.txt", teríamos:
>>
>> Os miseráveis03
>>
>> {continuação do texto de Os miseráveis02}
>>
>> O que basicamente preciso saber para construir este script? Ler
>> arquivos, linha por linha verificando se um contador é igual ao
>> tamanho passado como parâmetro.
>>
>> Entretanto, não sei como iterar sobre as linhas de um arquivo
>> utilizando Shellscript. Se fosse Pascal, seria algo mais ou menos
>> assim:
>>
>> var
>> f: text;
>> s: string;
>> I: integer;
>>
>> begin
>> assign(f, 'Os miseráveis.txt');
>> reset(f)
>> i := 0;
>> while not eof(f) do
>> begin
>> readln(f, s);
>> { Fazer alguma coisa com "s"}
>> inc(i);
>> end;
>> close(f);
>> end.
>>
>> Muito provavelmente necessitarei de um bocado de tentativas até que
>> tenha o meu script de audiolivros pronto. O que desejo é uma
>> orientação sobre o que estudar afim de conseguir gerar este script.
>> Não estou certo se a minha pergunta é apropriada para este grupo, mas
>> não conheço grupos sobre shellscript.
>> Luciano
>>
>> --
>> Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece
>>
>> Lista de discussão Ubuntu Brasil
>> Histórico, descadastramento e outras opções:
>> https://lists.ubuntu.com/mailman/listinfo/ubuntu-br
>>
>
>
>
> --
> Humberto Fraga
> http://lixaonerd.wordpress.com
>
> "Sur la tuta tero estis unu lingvo kaj unu parlomaniero." - Gn 11,1
> --
> Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece
>
> Lista de discussão Ubuntu Brasil
> Histórico, descadastramento e outras opções:
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-br
>


-- 
Luciano de Souza

-- 
Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece

Lista de discussão Ubuntu Brasil
Histórico, descadastramento e outras opções:
https://lists.ubuntu.com/mailman/listinfo/ubuntu-br

Responder a