[Ubuntu-BR] Iterando sobre arquivos com shellscript

luciano de souza luchyanus em gmail.com
Segunda Janeiro 14 16:25:30 UTC 2013


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




More information about the ubuntu-br mailing list