Ler a parti da segunda linha.. [RESOLVIDO]

1. Ler a parti da segunda linha.. [RESOLVIDO]

Jefferson
jefftome

(usa Outra)

Enviado em 08/10/2013 - 10:59h

Eai galera,

Tenho um while, e preciso ler a parti da 2ª linha, pois a primeira ja estou usando fora o while. Como faço isso ?

Ex:
----------------------%------------------------
caminho=$(head -1 /entrada/arq_01_teste.txt)

while read linha


done < /entrada/arq_01_teste.txt

---------------------%-------------------------




  


2. Re: Ler a parti da segunda linha.. [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 08/10/2013 - 14:28h

Redirecionando descritores. Veja o exemplo abaixo.

exec 3< /tmp/algum_arquivo  # Abre o arquivo e o associa ao descritor 3

read primeira <&3 # Operações usando descritores não reabrem o arquivo,

while read linha <&3; do # de modo que cada nova operação continua de onde a anterior parou.
ultima="$linha"
done

exec 3<&- # Fecha descritor 3

echo "Primeira: $primeira"
echo "Ultima: $ultima"



3. Re: Ler a parti da segunda linha.. [RESOLVIDO]

Jefferson
jefftome

(usa Outra)

Enviado em 11/10/2013 - 09:34h

paulo1205 escreveu:

Redirecionando descritores. Veja o exemplo abaixo.

exec 3< /tmp/algum_arquivo  # Abre o arquivo e o associa ao descritor 3

read primeira <&3 # Operações usando descritores não reabrem o arquivo,

while read linha <&3; do # de modo que cada nova operação continua de onde a anterior parou.
ultima="$linha"
done

exec 3<&- # Fecha descritor 3

echo "Primeira: $primeira"
echo "Ultima: $ultima"



Kara, sou novo nisso, e não entendi muito bem o q vc fez ai não, pesquisei sobre "exec" e não consegui entender..
Sera se tem outra forma de pega a segunda linha de um while ?


4. Re: Ler a parti da segunda linha.. [RESOLVIDO]

wellington joão da Silva
wellingtonjoao

(usa Manjaro Linux)

Enviado em 11/10/2013 - 10:35h

Da uma olhada aqui

http://daemoniolabs.wordpress.com/2012/02/24/manipulando-arquivos-descritores-no-shell/

jefftome escreveu:

paulo1205 escreveu:

Redirecionando descritores. Veja o exemplo abaixo.

exec 3< /tmp/algum_arquivo  # Abre o arquivo e o associa ao descritor 3

read primeira <&3 # Operações usando descritores não reabrem o arquivo,

while read linha <&3; do # de modo que cada nova operação continua de onde a anterior parou.
ultima="$linha"
done

exec 3<&- # Fecha descritor 3

echo "Primeira: $primeira"
echo "Ultima: $ultima"



Kara, sou novo nisso, e não entendi muito bem o q vc fez ai não, pesquisei sobre "exec" e não consegui entender..
Sera se tem outra forma de pega a segunda linha de um while ?




5. Re: Ler a parti da segunda linha.. [RESOLVIDO]

Marcos Paulo Ferreira
daemonio

(usa Slackware)

Enviado em 11/10/2013 - 23:20h

cat numeros.txt
1
2
3

$ sed 1d numeros.txt
2
3

No seu código ficaria assim:


caminho=$(head -1 /entrada/arq_01_teste.txt)

while read linha


done < $(sed 1d /entrada/arq_01_teste.txt)


ou jogar tudo pra dentro do while


primeiralinha=1
while read linha
do
[ $primeiralinha = 1 ] && caminho=$linha && primeiralinha=0
done < /entrada/arq_01_teste.txt


ai economiza dois processos (head e sed). Ou utilize o exec, mas no seu caso acho que so complicaria mais usar descritores.

t+






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts