shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] mudar linhas do arquivo


From: jimmy
Subject: Re: [shell-script] mudar linhas do arquivo
Date: Fri, 10 Oct 2008 16:23:37 -0300
User-agent: Mutt/1.4.2.3i

On Fri, Oct 10, 2008 at 05:47:06PM +0000, Anderson Souza wrote:
> no exemplo do Jimmy funcionou blz... mas gostaria que me explicasse a linha
> 
> read c1 c2 c3 || break
> 
> no caso aqui o  "c" indica a coluna, então pergunto (desculpe pela
> ignorância), 

o while faz um loop infinito e nessa linha eu controlo a leitura do
arquivo de entrada declarando que se não for possível ler a linha do
arquivo interrompa a execução "|| break"

o nome dessas variáveis foi apenas ilustrativo, poderia ser qualquer
outro nome; ex.: 
  read x y z

> na necessidade de modificar uma determinada linha podeira usar
> o  "l25" por exemplo?

não é possível usar essa notação nessa estrutura que lhe passei; 
quem controla o número da linha é a variável "i" (poderia mudar para "l"
também), para fazer a alteração na linha 25 seria necessário perguntar
se a variável "i" é igual a 25 a cada looping, ex.:

while ...
  if [ $i -eq 25 ]; then
    cmd1
    cmd2
    ...
  fi
done

---

Obs: parece que seu cliente de e-mail está "detonando" os scripts que
estão lhe passando, realizando quebras de linha onde não deveria, por
isso os erros que informa sobre a execução dos mesmos.

> 
> Em 10/10/08, Anderson Souza <address@hidden> escreveu:
> >
> > for ((ind=0; ind <= $[$(cat t300908.txt | wc -l)/5]; ind+=2))
> > do
> > sed -i "$((ind*5+1)),$((ind*5+5))s/\(
> >
> > .\{8\} \).*/\1180.000000
> > 90.000000/" t300908.txt
> > done
> > olha só a saída:
> >
> > sed: -e expression #1, char 35: Unterminated `s' command
> > sed: -e expression #1, char 35: Unterminated `s' command
> > sed: -e expression #1, char 35: Unterminated `s' command
> > sed: -e expression #1, char 35: Unterminated `s' command
> > ...
> > ...
> >
> > Em 10/10/08, Julio C. Neves <address@hidden> escreveu:
> >>
> >>   Com awk deve ser mais rápido, mas assim tb é uma saída:
> >>
> >> for ((ind=0; ind <= $[$(cat lixo | wc -l)/5]; ind+=2))
> >> do
> >> sed -i "$((ind*5+1)),$((ind*5+5))s/\(.\{8\} \).*/\1180.000000
> >> 90.000000/" lixo
> >> done
> >>
> >> Basta trocar lixo pelo nome do seu arquivo.
> >> *-- *
> >> Abração,
> >> Julio
> >> *Cursos de Shell nos finais de semana:
> >> - Em SP ligue (11) 2125-4747;
> >> - Em DF ligue (61) 3223-3000;
> >> - Turmas fechadas em qualquer cidade ligue (21) 8112-9988*
> >>
> >> 2008/10/8 Anderson Souza <address@hidden<anderson.souza35%40gmail.com>
> >> >
> >>
> >> > olá galera é o seguinte:
> >> > tenho o seguinte arquivo:
> >> > cat file1
> >> >
> >> > 3.000000 207.693604 139.802216
> >> > 3.016667 207.423340 139.695282
> >> > 3.033333 207.151947 139.589447
> >> > 3.050000 206.879440 139.484161
> >> > 3.066667 206.605835 139.380280
> >> > 3.083333 206.331390 139.277222
> >> > 3.100000 206.055557 139.175003
> >> > 3.116667 205.778885 139.073883
> >> > 3.133333 205.501114 138.973892
> >> > 3.150000 205.222229 138.874725
> >> > 3.166667 204.942215 138.776672
> >> > 3.183333 204.661392 138.679718
> >> > 3.200000 204.379440 138.583893
> >> > 3.216667 204.096390 138.488892
> >> > 3.233333 203.812225 138.395004
> >> > 3.250000 203.526947 138.301941
> >> > 3.266667 203.240829 138.210281
> >> > 3.283333 202.953888 138.119446
> >> > 3.300000 202.665558 138.029999
> >> > 3.316667 202.376389 137.941391
> >> > 3.333333 202.086105 137.853882
> >> > 3.350000 201.794998 137.767502
> >> > 3.366667 201.503052 137.681946
> >> > 3.383333 201.209717 137.597778
> >> > 3.400000 200.915833 137.514725
> >> > 3.416667 200.620560 137.432770
> >> > 3.433333 200.324722 137.351669
> >> >
> >> > a cada 5 linhas eu quero que fique da seguinte forma:
> >> >
> >> > 3.000000 180.000000 90.000000
> >> > 3.016667 180.000000 90.000000
> >> > 3.033333 180.000000 90.000000
> >> > 3.050000 180.000000 90.000000
> >> > 3.066667 180.000000 90.000000
> >> > 3.083333 206.331390 139.277222
> >> > 3.100000 206.055557 139.175003
> >> > 3.116667 205.778885 139.073883
> >> > 3.133333 205.501114 138.973892
> >> > 3.150000 205.222229 138.874725
> >> > 3.166667 180.000000 90.000000
> >> > 3.183333 180.000000 90.000000
> >> > 3.200000 180.000000 90.000000
> >> > 3.216667 180.000000 90.000000
> >> > 3.233333 180.000000 90.000000
> >> > 3.250000 203.526947 138.301941
> >> > 3.266667 203.240829 138.210281
> >> > 3.283333 202.953888 138.119446
> >> > 3.300000 202.665558 138.029999
> >> > 3.316667 202.376389 137.941391
> >> > 3.333333 180.000000 90.000000
> >> > 3.350000 180.000000 90.000000
> >> > 3.366667 180.000000 90.000000
> >> > 3.383333 180.000000 90.000000
> >> > 3.400000 180.000000 90.000000
> >> > 3.416667 200.620560 137.432770
> >> > 3.433333 200.324722 137.351669
> >> >
> >> > alguem pode me ajudar eu agradeço....
> >> > --
> >> > Anderson Souza
> >> > Email: address@hidden <anderson.souza35%40gmail.com><anderson.souza35%
> >> 40gmail.com>
> >> > Skype: anderson1904
> >> > Msn: address@hidden <aos_3%40msn.com> <aos_3%40msn.com>
> >> > Fone: (12)9732-9877
> >> > __________________________________________________________
> >> > "Os que desprezam pequenos acontecimentos, dificilmente farão grandes
> >> > descobertas."
> >> >
> >> > [As partes desta mensagem que não continham texto foram removidas]
> >> >
> >> >
> >> >
> >>
> >> --
> >> Abração,
> >> Julio
> >> Cursos de Shell nos finais de semana:
> >> - Em SP ligue (11) 2125-4747;
> >> - Em DF ligue (61) 3223-3000;
> >> - Turmas fechadas em qualquer cidade ligue (21) 8112-9988
> >>
> >> [As partes desta mensagem que não continham texto foram removidas]
> >>
> >>  
> >>
> >
> >
> >
> > --
> > Anderson Souza
> > Email: address@hidden
> > Skype: anderson1904
> > Msn: address@hidden
> > Fone: (12)9732-9877
> > _______________________________________________________________________
> > "Os que desprezam pequenos acontecimentos, dificilmente farão grandes
> > descobertas."
> >
> 
> 
> 
> -- 
> Anderson Souza
> Email: address@hidden
> Skype: anderson1904
> Msn: address@hidden
> Fone: (12)9732-9877
> _______________________________________________________________________
> "Os que desprezam pequenos acontecimentos, dificilmente farão grandes
> descobertas."
> 
> ------------------------------------


reply via email to

[Prev in Thread] Current Thread [Next in Thread]