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
Novo para scripting, Precisa de ajuda newbie22102 Programação Shell Script e 2 02-25-2008 11:08
scripting ajudar james94538 Programação Shell Script e 2 02-08-2008 07:36
diferença entre AIX e Unix shell scripts shell scripts. haroonec Programação Shell Script e 2 04-12-2006 09:12
scripting guru da pls me ajudar com scripting no AIX thatiprashant Programação Shell Script e 1 01-20-2006 07:58
Ksh Scripting dstaller Programação Shell Script e 1 11-16-2005 02:30

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 Avaliação: Thread Rating: 1 votes, 5.00 average. Display Modes
  #1 (permalink)  
Old 10-10-2008
nani123 nani123 is offline
Usuário
  
 

Join Date: Oct 2008
Posts: 2
Precisa de Ajuda scripts

Caro Scripting peritos,
Pedido para orientar-me em passar os valores para a coluna rows
Exemplo:
Arquivo 1:

1, a, b, c, d, e, f, g, h
2, F, G, H, I, L

Saída de arquivo
1, a, b, c
1, D, E, F
1, g, h
2, F, G, H
2, i, l


Na verdade, eu tentei com o uso e awk sed mas infelizmente eu não poderia obter a resultante.

Atenciosamente
nani
  #2 (permalink)  
Old 10-10-2008
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programador, autor
  
 

Join Date: Mar 2007
Localização: Toronto, Canadá
Mensagens: 2.380
Citação:
Originally Posted by nani123 View Post
Caro Scripting peritos,
Pedido para orientar-me em passar os valores para a coluna rows

O seu exemplo não se mover colunas para linhas, que divide linhas.

Aqui está um reservatório solução.

Código:
IFS=,
set -f
while read line
do
  set -- $line
  if [ $# -le 4 ]
  then
    print "$line"
  else
   a=$1
   shift
   while [ $# -gt 3 ]
   do
     printf "%s," "$a" "$1" "$2"
     printf "%s\n" "$3"
     shift 3
   done
   printf "%s," "$a"
   while [ $# -gt 1 ]
   do
     printf "%s," "$1"
     shift
   done
   printf "%s\n" "$1"
  fi
done < "$FILE"

Se o arquivo for grande, ela será lenta, e você deve converter o script para awk utilizando a mesma lógica.
  #3 (permalink)  
Old 10-10-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
viciado
  
 

Join Date: Jan 2007
Localização: Варна, България / Milano, Italia
Mensagens: 2.926
Utilize nawk / ou usr/xpg4/bin/awk em Solaris:


Código:
$ cat file
1,a,b,c,d,e,f,g,h
2,f,g,h,i,l
$ awk -F, '{
  printf$1FS;c=0
  for(i=2;i<=NF;i++)
    printf$i (++c%3?i==NF?RS:FS:RS$1FS)
}' file
1,a,b,c
1,d,e,f
1,g,h
2,f,g,h
2,i,l

  #4 (permalink)  
Old 10-13-2008
pkumar3 pkumar3 is offline
Usuário
  
 

Join Date: Oct 2008
Posts: 7
Plz descobrir o erro no seguinte código

cut-f 7,34 --d "," first97col.CSV | awk-F \ ', (
if ($ 2 !\u003d"") printf 1FS $ c \u003d 0
for (i \u003d 2; i <\u003d NF; i + +)
printf $ i (+ + c% 4? i \u003d\u003d NF? RS: FS: RS $ 1FS) fi;
) '

Última edição por pkumar3; em 10/13/2008 09:41..
  #5 (permalink)  
Old 10-13-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
viciado
  
 

Join Date: Jan 2007
Localização: Варна, България / Milano, Italia
Mensagens: 2.926
Citação:
Originally Posted by pkumar3 View Post
Oi eu tenho um problema semelhante.
arquivo de origem é de formato
1, a, b, c, d, e, f, g, h
2
3, F, G, H, I, L
4
5, m, n

E o arquivo de saída esperados
1, a, b, c
1, D, E, F
1, g, h
3, F, G, H
3, I, L
5, m, n

Eu usei esse método
awk-F, '$ 1! \u003d p1 (printf "% s,% s,% s,% s \ n", $ 1, $ 2, $ 3, $ 4) $ 2! \u003d p2 (printf "% s,% s,% s ,% s \ n ", $ 1, $ 5, $ 6, $ 7, $ 8; p1 \u003d $ 1; p2 \u003d $ 2) '

o n º de coloumns no arquivo de origem é de varriable comprimento e pode crescer até 3000.

Código:
perl -F, -nae'if($#F){s/((?:(?:.*?),){3}[^,]*)/$1\n$F[0]/g;print}' filename

  #6 (permalink)  
Old 10-10-2008
ShawnMilo ShawnMilo is offline
Usuário
  
 

Join Date: Jun 2006
Lugares: 252
Aqui está uma abordagem bastante simples Python (testado ea funcionar).


Código:
$ cat nani123.py 
#!/usr/bin/env python

input = open("temp.txt", 'r')

for line in input:

    line = line.rstrip()
    line = line.split(',')
    num = line[0]
    data = line[1:]

    while data:
        print num + "," + ','.join(data[:3])
        data = data[3:]

Teste:


Código:
$ cat temp.txt 
1,a,b,c,d,e,f,g,h
2,f,g,h,i,l


$ python nani123.py 
1,a,b,c
1,d,e,f
1,g,h
2,f,g,h
2,i,l

  #7 (permalink)  
Old 10-10-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
viciado
  
 

Join Date: Jan 2007
Localização: Варна, България / Milano, Italia
Mensagens: 2.926
Perl está faltando:


Código:
perl -F, -pae's/((?:(?:.*?),){3}[^,]*)/$1\n$F[0]/g' file

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 12:48.


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