The UNIX and Linux Forums  

Go Back   Die UNIX-und Linux-Foren > Top Foren > Shell Programmierung und Scripting
.
Google unix.com



Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
Gibt es eine Lösung für dieses Sed? racbern Shell Programmierung und Scripting 1 03-13-2008 11:31 AM
Notwendigkeit für Scripting KKC Shell Programmierung und Scripting 14 01-31-2008 09:17 PM
Sonnen-und Backup-Lösung Jshwon SUN Solaris 1 10-23-2007 01:54 PM
Grep Lösung Amruta Pitkar Shell Programmierung und Scripting 3 05-03-2007 03:57 AM
Linux als NAS-Lösung? kjbaumann Linux 1 08-30-2006 01:09 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 Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 03-06-2008
timj123 timj123 is offline
Registrierte Nutzer
  
 

Join Date: Jan 2008
Beiträge: 80
Gibt es eine Lösung für dieses awk?

Ich schreibe ein awk-Skript, sammelt bestimmte Daten aus bestimmten Bereichen. Ich brauchte ein awk Lösung für diese, denn es wird später eine Funktion in das Skript.

Ich habe folgende Daten, die ich brauche die Ausgabe auf einer einzigen Zeile, sondern Datensatz umfasst über multilple Linien und werden nicht "zusammen". Beispiel wäre Tom unten, erfassen "Tom" unten auf 4 verschiedenen Strecken, aber ich nur noch Daten von 2 der Zeilen, werde ich auch brauchen die gleichen Informationen für Pat, Tim, und tad, oder wer sonst hat einen Eintrag wie das Format unten.


Code:
2008   fl01   LAC   2589   polk   doal
xx 2008q1 mx
     sect 25698541

     Sales 08 Dept group

        lead1    2008q1
        tom
        pat
        tim
        tad

        lead1  07q4   07q3   07q2   07q1   06q4   06q3   jan
        tom    0      96     0      3312   3624   0      312
        pat    0      17     0      0      30     0      30
        tim    357    03     04     25     3020   3120   20
        tad    1734   0      0      0      5213   5213   0

        lead1  feb    mar    apr    may    jun    jul    aug
        tom    0      96     0      0      0      0      0
        pat    0      17     0      0      0      0      0
        tim    357    23     5      7      8      14     70
        tad    1734   0      0      0      0      0      0

        lead1  sept   oct    nov    dec
        tom    0      0      460    92
        pat    0      0      240    0
        tim    0      21     1800   0
        tad    0      0      672    0

2008   fl01  LAC   2589    polk   doal
yy 2008q1 mx
     sect 2569852

     Sales 08 Dept group

Ich musste die folgende Ausgabe:


Code:
lead1   07q4    07q1    06q4    06q3    sept    oct     nov
tim	357	25	3020	3120	0	21	1800 
tad	1734	0	5213	5213	0	0	672

Gibt es eine Lösung für dieses awk?

Vielen Dank im Voraus für diese, denn ich denke, das ist eine schwierige.
  #2 (permalink)  
Old 03-11-2008
timj123 timj123 is offline
Registrierte Nutzer
  
 

Join Date: Jan 2008
Beiträge: 80
Zitat:
Zitat von timj123 View Post
Ich schreibe ein awk-Skript, sammelt bestimmte Daten aus bestimmten Bereichen. Ich brauchte ein awk Lösung für diese, denn es wird später eine Funktion in das Skript.

Ich habe folgende Daten, die ich brauche die Ausgabe auf einer einzigen Zeile, sondern Datensatz umfasst über multilple Linien und werden nicht "zusammen". Beispiel wäre Tom unten, erfassen "Tom" unten auf 4 verschiedenen Strecken, aber ich nur noch Daten von 2 der Zeilen, werde ich auch brauchen die gleichen Informationen für Pat, Tim, und tad, oder wer sonst hat einen Eintrag wie das Format unten.


Code:
2008   fl01   LAC   2589   polk   doal
xx 2008q1 mx
     sect 25698541

     Sales 08 Dept group

        lead1    2008q1
        tom
        pat
        tim
        tad

        lead1  07q4   07q3   07q2   07q1   06q4   06q3   jan
        tom    0      96     0      3312   3624   0      312
        pat    0      17     0      0      30     0      30
        tim    357    03     04     25     3020   3120   20
        tad    1734   0      0      0      5213   5213   0

        lead1  feb    mar    apr    may    jun    jul    aug
        tom    0      96     0      0      0      0      0
        pat    0      17     0      0      0      0      0
        tim    357    23     5      7      8      14     70
        tad    1734   0      0      0      0      0      0

        lead1  sept   oct    nov    dec
        tom    0      0      460    92
        pat    0      0      240    0
        tim    0      21     1800   0
        tad    0      0      672    0

2008   fl01  LAC   2589    polk   doal
yy 2008q1 mx
     sect 2569852

     Sales 08 Dept group

Ich musste die folgende Ausgabe:


Code:
lead1   07q4    07q1    06q4    06q3    sept    oct     nov
tim	357	25	3020	3120	0	21	1800 
tad	1734	0	5213	5213	0	0	672

Gibt es eine Lösung für dieses awk?

Vielen Dank im Voraus für diese, denn ich denke, das ist eine schwierige.
alle müssen mithelfen, für diese, bitte?
  #3 (permalink)  
Old 03-12-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
addict
  
 

Join Date: Jan 2007
Lage: Варна, България / Milano, Italia
Posts: 2926

Code:
awk 'NR == 1 { print "lead1   07q4    07q1    06q4    06q3    sept    oct     nov" }
$1 ~ "^("users")$" && NF > 1 { 
x[$1]++
if (x[$1] == 1)
  p[$1] = sprintf ("%s\t%s\t%s\t%s\t%s", $1, $2, $5, $6, $7)
if (x[$1] == 3) {
  printf "%s\t%s\t%s\t%s\n", p[$1], $2, $3, $4 
 }
}' users="tim|tad" file

Sie können mehrere Benutzer in das Muster: tim | tad | pat usw.
Verwenden Sie nawk oder / usr/xpg4/bin/awk auf Solaris.
  #4 (permalink)  
Old 03-13-2008
timj123 timj123 is offline
Registrierte Nutzer
  
 

Join Date: Jan 2008
Beiträge: 80
Zitat:
Zitat von radoulov View Post
Code:
awk 'NR == 1 { print "lead1   07q4    07q1    06q4    06q3    sept    oct     nov" }
$1 ~ "^("users")$" && NF > 1 { 
x[$1]++
if (x[$1] == 1)
  p[$1] = sprintf ("%s\t%s\t%s\t%s\t%s", $1, $2, $5, $6, $7)
if (x[$1] == 3) {
  printf "%s\t%s\t%s\t%s\n", p[$1], $2, $3, $4 
 }
}' users="tim|tad" file

Sie können mehrere Benutzer in das Muster: tim | tad | pat usw.
Verwenden Sie nawk oder / usr/xpg4/bin/awk auf Solaris.
Das funktioniert großartig, ich schätze die Hilfe zu diesem Thema, aber was, wenn ich wollte sagen, dass Spalten 07q4 und 07q1, und setzen Sie dann, dass am Ende der printf Anweisung? Nach Problemen mit diesem Teil. Können Sie mir helfen?
  #5 (permalink)  
Old 03-13-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
addict
  
 

Join Date: Jan 2007
Lage: Варна, България / Milano, Italia
Posts: 2926

Code:
awk 'NR == 1 { print "lead1   07q4    07q1    06q4    06q3    sept    oct     nov     tot" }
$1 ~ "^("users")$" && NF > 1 { 
x[$1]++
if (x[$1] == 1) {
  p[$1] = sprintf ("%s\t%s\t%s\t%s\t%s", $1, $2, $5, $6, $7)
  t[$1] = $2 + $5
}
if (x[$1] == 3) {
  printf "%s\t%s\t%s\t%s\t%d\n", p[$1], $2, $3, $4, t[$1] 
 }
}' users="tim|tad" file

  #6 (permalink)  
Old 03-13-2008
timj123 timj123 is offline
Registrierte Nutzer
  
 

Join Date: Jan 2008
Beiträge: 80
OK, jetzt fühle ich mich dumm.
Nochmals vielen Dank soo sehr auf das Einsparen von mir über eine Woche im Wert von Frustration.
Ich weiß, ich brauche, um Fragen, wie diese aus einem anderen Blickwinkel.
  #7 (permalink)  
Old 03-13-2008
aspect_p aspect_p is offline
Registrierte Nutzer
  
 

Join Date: März 2008
Beiträge: 13
Zitat:
Zitat von radoulov View Post
Code:
awk 'NR == 1 { print "lead1   07q4    07q1    06q4    06q3    sept    oct     nov     tot" }
$1 ~ "^("users")$" && NF > 1 { 
x[$1]++
if (x[$1] == 1) {
  p[$1] = sprintf ("%s\t%s\t%s\t%s\t%s", $1, $2, $5, $6, $7)
  t[$1] = $2 + $5
}
if (x[$1] == 3) {
  printf "%s\t%s\t%s\t%s\t%d\n", p[$1], $2, $3, $4, t[$1] 
 }
}' users="tim|tad" file
Kann man ein wenig weiter in der Beschreibung der awk Methoden auf das Skript, im leider zu einem etwas stört, aber wie kann eine große ACE in meinem Arsenal von Shell Scripting.
Closed Thread

Lesezeichen

Tags
solaris

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 02:02 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0