msoliver
(usa Debian)
Enviado em 05/04/2016 - 01:13h
chavesejf escreveu:
Olá pessoal,
Estou escrevendo um script para uso pessoal no trabalho e empaquei no seguinte problema:
Tenho um arquivo com 15 linhas, cada linha especifica para um código de 3 caracteres, ex.:
o arquivo ligantes.txt apresenta o seguinte conteúdo:
0rb
4pj
3oe
1ru
2rj
4oi
3jk
3kr
jp2
jp3
Estou tentando implementar uma variável para cada linha deste arquivo, ex.:
LIG1=0rb
...
LIG10=jp3
Tendo essa problemática, fiz o seguinte:
for i in `seq 1 10`; do LIG"$i"=`cat ligantes.txt | grep -n ^ | grep ^"$i": | cut -d: -f2`; done
como saída, tive o seguinte resultado:
LIG1=0rb: comando não encontrado
. . .
LIG10=jp3: comando não encontrado
Vocês têm alguma sugestão do que pode está errado ? Alguma sugestão?
Obrigado.
Boa noite chavesejf.
Segue a sugestão/solução:
Para GERAR as VARS:
NN=$(awk 'END {print NR}' ligantes.txt)
for ((x=1;x<=$NN;x++))do eval LIG$x=$(sed -n "$x"p ligantes.txt);done
Para Ler/testar:
for X in LIG{1..10};do echo "$X": "${!X}";done
SAíDA:
LIG1: 0rb
LIG2: 4pj
LIG3: 3oe
LIG4: 1ru
LIG5: 2rj
LIG6: 4oi
LIG7: 3jk
LIG8: 3kr
LIG9: jp2
LIG10: jp3
É isso...
----------------------------------------------------------------------------------------
Se resolver, marque como resolvido, por favor.
Gostando da resposta, marque-a como a MELHOR, dessa forma, ganho uns pontinhos,
o que incentiva a continuar colaborando, ajudando, participando e compartilhando conhecimentos . . . :)
----------------------------------------------------------------------------------------
Abç.:
Marcelo