O arquivo fornecido deve não ser armazenado na variável e, em seguida, atravessado devido a restrições de tamanho de memória:
Exemplo:
var=$(cat FILE)
for i in $var
do
echo $i
done
Como você percorre todas as strings em um arquivo da mesma forma que o exemplo acima, mas extrai cada espaço em branco separado diretamente do arquivo?
Exemplo:
fileindex=1
totalfilecount=$(cat FILE | wc -w)
while (( ${fileindex} <= ${totalfilecount} ))
do
onefilename= ??? missing command using fileindex
((fileindex+=1))
done
Existe um comando que pode exibir um arquivo como uma matriz e permitir que você extraia palavras usando suas posições de índice?
A ideia é processar cada palavra no arquivo como se o arquivo fosse uma matriz.
Exemplo de arquivo de entrada:
one two
three four
five six
Este é o cenário que requer a funcionalidade acima:
- temos server_A e server_B
- server_A precisa se conectar ao server_B via sftp (somente sftp) e 'pegar' alguns arquivos
- Ambos os comandos 'ls' ou 'ls -l' no sftp podem estar usando curingas para filtrar arquivos específicos
- cada arquivo precisa ser processado individualmente (por várias razões) em tempo real
- os arquivos não podem ser copiados como um grupo para server_B e, em seguida, processados individualmente
- uma lista de arquivos deve ser criada primeiro no server_A e, em seguida, cada arquivo dessa lista é copiado do server_B e processado um arquivo de cada vez
Onde está o problema?
O problema é como o comando 'ls' pode criar uma lista de palavras de duas colunas se a lista for longa, portanto não permitindo processamento simples como com 'ls -l', que sempre cria uma única lista de colunas.
Isso nos leva à minha pergunta inicial, se tal solução existe.