Eu tenho um arquivo chamado indexes.out
O conteúdo abaixo está dentro do arquivo indexes.out:
informix abc_aseld_idx1
informix abc_aseld_idx2
informix abc_aseld_idx3
informix abc_aseld_idx4
informix abc_aseld_idx5
Eu quero criar um loop for que possa puxar cada linha de cada vez mantendo o formato. Estou usando o comando for loop abaixo:
for i in `
cat indexes.out`
do
echo "$i"
done
A saída é:
informix
abc_aseld_idx1
informix
abc_aseld_idx2
informix
abc_aseld_idx3
informix
abc_aseld_idx4
informix
abc_aseld_idx5
informix
Eu quero ver a mesma saída como arquivo, porque quero trabalhar com ambas as colunas no loop posteriormente trabalhando com awk $1 e $2:
informix abc_aseld_idx1
informix abc_aseld_idx2
informix abc_aseld_idx3
informix abc_aseld_idx4
informix abc_aseld_idx5
Uma vez no loop, quero usar cada linha para filtrar colunas específicas individualmente.
Por padrão, um
for
-loop faz um loop sobre palavras, não linhas!Normalmente, não há necessidade de um loop e você usaria exatamente
awk
como está fazendo isso, percorrendo as linhas do arquivo:Se você quiser continuar trabalhando com os dados no shell, você pode usar um
while
loop eread
:Para outros usos, você deve consultar esta questão relacionada .
Eu encontrei uma solução que funcionará para mim:
Em vez de usar um espaço no arquivo, use uma barra delimitadora (|) conforme abaixo:
Uma vez em loop, você pode substituir o tubo com espaçamento como abaixo:
saída é: