The UNIX and Linux Forums  
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.

Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
Ny til skripting, Trenger du hjelp newbie22102 Shell programmering og Skripting 2 02-25-2008 11:08
scripting hjelp james94538 Shell programmering og Skripting 2 02-08-2008 07:36
Forskjellen mellom AIX shell scripting og Unix shell scripting. haroonec Shell programmering og Skripting 2 04-12-2006 08:12
scripting guru's pls hjelpe meg med skripting på AIX thatiprashant Shell programmering og Skripting 1 01-20-2006 07:58
Ksh Skripting dstaller Shell programmering og Skripting 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 Søk i denne tråden Vurdering: Thread Rating: 1 votes, 5.00 average. Visningsmoduser
  #1 (permalink)  
Old 10-10-2008
nani123 nani123 is offline
Registrert bruker
  
 

Bli Dato: Oct 2008
Innlegg: 2
Trenger scripting Hjelp

Kjære Skripting eksperter,
Forespørselen om å guide meg i bevegelse kolonnen verdier til rader
Eksempel:
Fil 1:

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

Utdatafilen
1, a, b, c
1, d, e, f
1, G, H
2, F, G, H
2, i, l


Egentlig prøvde jeg med å bruke awk og sed men dessverre kunne jeg ikke få resultatet.

Hilsen
nani
  #2 (permalink)  
Old 10-10-2008
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmerer, forfatter
  
 

Bli Date: Mar 2007
Bosted: Toronto, Canada
Innlegg: 2361
Sitat:
Originally Posted by nani123 View Post
Kjære Skripting eksperter,
Forespørselen om å guide meg i bevegelse kolonnen verdier til rader

Ditt eksempel ikke flytte kolonner til rader, den splitter linjer.

Her er et shell løsning.
Code:
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"
Hvis filen er stor, vil det være treg, og du skal konvertere manuset til awk bruke samme logikk.
  #3 (permalink)  
Old 10-10-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
stoffmisbruker
  
 

Bli Date: Jan 2007
Beliggenhet: Варна, България / Milano, Italia
Innlegg: 2859
Bruk nawk eller / usr/xpg4/bin/awk på Solaris:

Code:
$ 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
Registrert bruker
  
 

Bli Dato: Oct 2008
Innlegg: 7
Plz finne feil i følgende kode

cut-f 7,34 --d "," first97col.CSV | awk-F \ "(
hvis ($ 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;
) "

Sist endret av pkumar3; 10-13-2008 på 08:41..
  #5 (permalink)  
Old 10-13-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
stoffmisbruker
  
 

Bli Date: Jan 2007
Beliggenhet: Варна, България / Milano, Italia
Innlegg: 2859
Sitat:
Originally Posted by pkumar3 View Post
Hei Jeg har et lignende problem.
kildefilen er av format
1, a, b, c, d, e, f, g, h
2
3, F, G, H, I, L
4
5, m, n

Og forventet utdatafilen
1, a, b, c
1, d, e, f
1, G, H
3, F, G, H
3, i, l
5, m, n

Jeg brukte denne metoden
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) '

at ingen av coloumns i kildefilen er varriable lengde og kan vokse opp til 3000.
Code:
perl -F, -nae'if($#F){s/((?:(?:.*?),){3}[^,]*)/$1\n$F[0]/g;print}' filename
  #6 (permalink)  
Old 10-10-2008
ShawnMilo ShawnMilo is offline
Registrert bruker
  
 

Bli Dato: juni 2006
Innlegg: 252
Her er en ganske enkel Python tilnærming (testet og fungerer).

Code:
$ 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:]
Test:

Code:
$ 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  
stoffmisbruker
  
 

Bli Date: Jan 2007
Beliggenhet: Варна, България / Milano, Italia
Innlegg: 2859
Perl mangler:

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

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 09:51.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0