Enviado em 04/08/2016 - 02:01h
A utilizarmos o comando while como o exemplo:
while read LINE;do
echo $LINE
done < File.txt
É possível manipular o conteúdo de $LINE como se fosse um índice de um vetor?
Pelo que pude entender, o while pega linha por linha, segue as instruções contidas dentro do bloco do laço e depois passa para a próxima linha e assim por diante até chegar ao final do arquivo e encerrar a execução.
Mas como é que o while tem o controle para as linhas que já foram lidas das que ainda serão lidas?
A mesma situação, meramente explicativa, ocorre no comando for i in `cat File.txt`;do comandos...; done
Como será que funciona o mecanismo de controle no momento em que o arquivo é lido pelo while (done < File.txt).
Mais precisamente, como que é realizado o controle para que a execução fique "travada" na linha X e depois somente vá para a linha Y e assim por diante? Será que cada linha não recebe um índice que internamente o while utiliza para cada linha lida? Há como fazer com que o while deixe isto explícito?
Trabalho com manipulação de arquivos text com milhares, senão milhões de linhas. Eu necessito saber se isso é possível de se fazer, pois caso contrário eu utilizarei vetores para meu propósito (o que eu não gostaria de ter de fazer, pois já realizei testes e popular um vetor com muitas linhas consome muito tempo de execução). Então seria ganho de tempo aproveitar os recursos do while. Necessito que, durante a execução do laço, seja possível escolher as linha que será lida aleatoriamente. Por exemplo, durante determinado momento da execução, supomos que eu esteja na linha 4. Na próxima interação, desejo passar para a linha 25, e por aí vai...
Deixo claro que não estou solicitando ajuda para implementar um algoritmo e sim precisar sobre a questão dos recursos do while.
while read LINE;do
echo $LINE
done < File.txt
É possível manipular o conteúdo de $LINE como se fosse um índice de um vetor?
Pelo que pude entender, o while pega linha por linha, segue as instruções contidas dentro do bloco do laço e depois passa para a próxima linha e assim por diante até chegar ao final do arquivo e encerrar a execução.
Mas como é que o while tem o controle para as linhas que já foram lidas das que ainda serão lidas?
A mesma situação, meramente explicativa, ocorre no comando for i in `cat File.txt`;do comandos...; done
Como será que funciona o mecanismo de controle no momento em que o arquivo é lido pelo while (done < File.txt).
Mais precisamente, como que é realizado o controle para que a execução fique "travada" na linha X e depois somente vá para a linha Y e assim por diante? Será que cada linha não recebe um índice que internamente o while utiliza para cada linha lida? Há como fazer com que o while deixe isto explícito?
Trabalho com manipulação de arquivos text com milhares, senão milhões de linhas. Eu necessito saber se isso é possível de se fazer, pois caso contrário eu utilizarei vetores para meu propósito (o que eu não gostaria de ter de fazer, pois já realizei testes e popular um vetor com muitas linhas consome muito tempo de execução). Então seria ganho de tempo aproveitar os recursos do while. Necessito que, durante a execução do laço, seja possível escolher as linha que será lida aleatoriamente. Por exemplo, durante determinado momento da execução, supomos que eu esteja na linha 4. Na próxima interação, desejo passar para a linha 25, e por aí vai...
Deixo claro que não estou solicitando ajuda para implementar um algoritmo e sim precisar sobre a questão dos recursos do while.