The UNIX and Linux Forums  

Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
combinando campos em dois campos texto Shocker Programação Shell Script e 3 01-16-2008 11:27
corte: pegue uma ou duas áreas maxvirrozeito Programação Shell Script e 3 12-17-2007 11:58
Cortar Últimos 3 campos bourne Programação Shell Script e 4 01-11-2007 05:17
Última campos Khoomfire UNIX & avançada para usuários experientes 3 04-13-2006 06:03
como cortar campos rajan_ka1 Programação Shell Script e 1 12-29-2005 05:55

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 11-18-2008
ddurden7 ddurden7 is offline
Usuário
  
 

Join Date: Oct 2008
Posts: 5
Especificando e substitui campos com awk

# cat BATCH007.TXT
01,661060052,061000104,081118,0915,07,80,1,2 /
99,,, 2 /

Eu tenho esse arquivo chamado BATCH007.TXT. Estou tentando mudar campos 2 e 3 na linha 2 para ter zeros. Como esta:
01,661060052,061000104,081118,0915,07,80,1,2 /
99,0,0,2 /

Sou capaz de utilizar estes comandos para imprimir identificar os campos, que retornam um valor vazio, como se deve:
BATCH007.TXT cabeça -2 | tail-1l | awk '(FS \u003d","} (print $ 2)'
BATCH007.TXT cabeça -2 | tail-1l | awk '(FS \u003d","} (print $ 3)'

Acho que estou perto. Eu adicionei uma gusb ao comando acima, mas a produção é incorreto:

BATCH007.TXT cabeça -2 | tail-1l | awk-F "," '(gsub ($ 2, "0");) print' BATCH007.TXT> D.new

$ cat D.new
01,661060052,0,081118,0915,07,80,1,2 /
09090,0,0,020 / 0

Alguém tem alguma sugestão?
  #2 (permalink)  
Old 11-18-2008
insamniac insamniac is offline
Usuário
  
 

Join Date: Aug 2006
Lugares: 14
parece-me para casa
  #3 (permalink)  
Old 11-19-2008
Christoph Spohr Christoph Spohr is offline
Usuário
  
 

Join Date: Sep 2008
Lugares: 205
Oi,

Não sei exatamente o que você está tentando fazer, mas só se você quiser mudar a linha 2 do arquivo que você, isso deve ser suficiente:

Código:
sed "/^99/s/,,,/,0,0,/g" file
O que significa: ir para a linha começando com 99 e nesta linha substituto três kommas na fila por, 0,0,

HTH Chris
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 04:30.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0