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

