The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
Ny på scripting, Need help newbie22102 Shell Programmering og Scripting 2 02-25-2008 11:08 AM
scripting hjælpe james94538 Shell Programmering og Scripting 2 02-08-2008 07:36 PM
Forskellen mellem AIX shell scripting og Unix shell-scripting. haroonec Shell Programmering og Scripting 2 04-12-2006 09:12 AM
scripting guru's pls hjælpe mig med scripting på AIX thatiprashant Shell Programmering og Scripting 1 01-20-2006 07:58 PM
Ksh Scripting dstaller Shell Programmering og Scripting 1 11-16-2005 02:30 PM

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øg denne tråd Karakter: Thread Rating: 1 votes, 5.00 average. Display Modes
  #1 (permalink)  
Old 10-10-2008
nani123 nani123 is offline
Registreret Bruger
  
 

Join Date: oktober 2008
Stillinger: 2
Behov scripting Hjælp

Kære Scripting eksperter,
Anmodning om at vejlede mig i bevægelse kolonne værdier, der rækker
Eksempel:
Fil 1:

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

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


Faktisk forsøgte jeg med at bruge awk og sed men desværre jeg kunne ikke få den færdige.

Hilsen
nani
  #2 (permalink)  
Old 10-10-2008
cfajohnson's Avatar
cfajohnson cfajohnson is online now Forum Advisor  
Shell programmør, forfatter
  
 

Join Date: Mar 2007
Beliggenhed: Toronto, Canada
Stillinger: 2374
Citat:
Oprindeligt Indsendt af nani123 View Post
Kære Scripting eksperter,
Anmodning om at vejlede mig i bevægelse kolonne værdier, der rækker

Dit eksempel ikke flytte kolonner til rækker; det opdeler linjer.

Her er en 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 langsom, og du bør konvertere script til awk bruger den samme logik.
  #3 (permalink)  
Old 10-10-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
narkoman
  
 

Join Date: Jan 2007
Beliggenhed: Варна, България / Milano, Italia
Indlæg: 2.926
Brug 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
Registreret Bruger
  
 

Join Date: oktober 2008
Stillinger: 7
Plz finde frem til fejlen i følgende kode

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? Jeg \u003d\u003d NF? RS: FS: RS $ 1FS) fi;
) '

Sidst redigeret af pkumar3; 10-13-2008 på 09:41 AM..
  #5 (permalink)  
Old 10-13-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
narkoman
  
 

Join Date: Jan 2007
Beliggenhed: Варна, България / Milano, Italia
Indlæg: 2.926
Citat:
Oprindeligt Indsendt af pkumar3 View Post
Hej Jeg har et lignende problem.
kildefilen er af format
1, a, b, c, d, e, f, g, h
2
3, F, G, H, I, L
4
5, m, n

Og den forventede outputfil
1, a, b, c
1, d, e, f
1, G, H
3, F, G, H
3, I, L
5, m, n

Jeg har brugt denne metode
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) '

de ikke af coloumns i kildefilen er varriable længde og kan vokse op 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
Registreret Bruger
  
 

Join Date: Jun 2006
Stillinger: 252
Her er en forholdsvis enkel Python tilgang (testet og arbejdsgrupper).


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  
narkoman
  
 

Join Date: Jan 2007
Beliggenhed: Варна, България / Milano, Italia
Indlæg: 2.926
Perl mangler:


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

Closed Thread

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 11:13 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0