|
|
|
|
Google-Website
|
|||||||
| Foren | Registrieren | Blog | Man-Seiten | Forum-Regeln | Links | Alben | FAQ | Benutzer | Kalender | Suche | Die heutige Beiträge | Alle Foren als gelesen markieren |
| Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier. |
![]() |
|
|
Thread Tools | Suche diesen Thread | Rate Thread | Anzeige-Modi |
|
|||
|
Ihre Arbeitsweise. großartig.
Können Sie mir bitte helfen, um das Skript, wie es berechnet wie unten aus der Ausgabedatei - Wie viele mit CREATE RESP: 3 * Wie viele mit CREATE RESP: 9 * Wie viele mit CREATE RESP: 9?3????? Wie viele mit CREATE RESP: 9?3?96 CREATE RESP: 3010 CREATE RESP:911364896 DELETE RESP: 0 SET RESP: 911265678 |
| Sponsored Links |
|
|
|
|||
|
Oaaaao ........ seine wirklich toll. Ich erwartet, dass die Ausgabe auf diese Weise.
![]() Ich muss hinzufügen, die SET-, DELETE-Logik mit den unten CREATE. Beispiel - Wie viele SET mit RESP: 3 * Wie viele SET mit RESP: 9 * Wie viele SET mit RESP: 9? 3 ????? Wie viele SET mit RESP: 9? 3?? 96 Darf ich das Skript, wie unter - perl NLE-" BEGIN ($ / \u003d "</ log>", $, \u003d "\ n"; $ \ \u003d "\ n \ n") Print / <fullOperation> (.*?):.*< fullResult >(.*?:.*?)[:;]/ s; if ($ 1 eq "Erstellen") ( $ r \u003d (split /: /, $ 2) [1]; $ r \u003d ~ / ^ 3 / und $ r3 + +; $ r \u003d ~ / ^ 9 / und $ r9 + +; $ r \u003d ~ / 9 \ d (2) 3 \ d (5) / und $ r93 + +; $ r \u003d ~ / 9 \ d (2) 3 \ d (3) 96 / $ und r9396 + +; ) if ($ 1 eq "SET") ( $ r \u003d (split /: /, $ 2) [1]; $ r \u003d ~ / ^ 3 / und $ r3 + +; $ r \u003d ~ / ^ 9 / und $ r9 + +; $ r \u003d ~ / 9 \ d (2) 3 \ d (5) / und $ r93 + +; $ r \u003d ~ / 9 \ d (2) 3 \ d (3) 96 / $ und r9396 + +; ) END ( printf "CREATE 3 *:% d \ nCREATE9 *:% d \ nCREATE9? ????? 3:% d \ nCREATE9? 3?? 96:% d \ n", $ r3, $ r9, r93 $, $ r9396; printf "SET3 *:% d \ nSET9 *:% d \ nSET9? ????? 3:% d \ nSET9? 3?? 96:% d \ n", $ r3, $ r9, r93 $, $ r9396; ) 'Infile |
|
||||
|
Gut, Sie brauchen mehr Code ![]() Try something like this (einige Erklärungen müssen möglicherweise angepasst werden): Code:
perl -wnle'
BEGIN {
$/ = "</log>";
our %pats = qw/3* 3 9* 9 9??3????? 9\d{2}3\d{5} 9??3???96 9\d{2}3\d{3}96/;
}
our ($r, $op, $res, $in);
if (($op, $r) = /<fullOperation>(.*?):.*<fullResult>(.*?:.*?)[:;]/s) {
printf "%s\n%s\n\n", $op, $r;
$res = (split /:/, $r)[1];
for (keys %pats) {
$ops{$op}{$_}++ if $res =~ /^$pats{$_}/;
}
}
END {
$, = " ";
print "-" x 20;
while (my ($k, $v) = each %ops) {
printf $k, ": ";
while (my ($k, $v) = each %$v) {
print "\t$k : $v\n";
}
}
}' infileZuletzt bearbeitet von radoulov; am 11-17-2008 04:31 PM.. |
|
|||
|
Hay Buddy,
leider stört dich wieder. Aber Ihr Skript ist wirklich gut. Ich hoffe, unten ist mein letzter Wunsch ![]() Ich brauche, um die "SET"-Strings aus der Datei. Und gerade jetzt, wenn ich die Befehle Ich sehe in allen Ausgaben in meinem Bildschirm - CREATE RESP: 3010 CREATE RESP: 911364896 DELETE RESP: 0 SET RESP: 911265678 ------------------ Anzahl der DELETE ..... count SET ..... Wie kann ich sehen, der nur die Ergebnisse der Zählung erstellen und löschen ----------- Anzahl der DELETE ... Anzahl der SET ..... Vielen Dank .. / / lila |
|
||||
|
Ja: Code:
perl -wnle'
BEGIN {
$/ = "</log>";
our %pats = qw/3* 3 9* 9 9??3????? 9\d{2}3\d{5} 9??3???96 9\d{2}3\d{3}96/;
}
our ($r, $op, $res, $in);
if (($op, $r) = /<fullOperation>(CREATE|DELETE):.*<fullResult>(.*?:.*?)[:;]/s) {
$res = (split /:/, $r)[1];
for (keys %pats) {
$ops{$op}{$_}++ if $res =~ /^$pats{$_}/;
}
}
END {
$, = " ";
print "-" x 20;
while (my ($k, $v) = each %ops) {
printf $k, ": ";
while (my ($k, $v) = each %$v) {
print "\t$k : $v\n";
}
}
}' infile |
| Sponsored Links |
|
|
![]() |
| Lesezeichen |
| Thread Tools | Suche diesen Thread |
| Anzeige-Modi | Rate this thread |
|
|
Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
|
||||
| Faden | Thread Starter | Forum | Antworten | Last Post |
| Suche ")" mit egrep - egrep: Syntax-Fehler | sagarjani | UNIX for Dummies Questions & Answers | 7 | 10-14-2008 08:30 AM |
| egrep / grep Ergebnis von mehr Dateien | tvrman | Shell Programmierung und Scripting | 3 | 08-07-2008 09:29 AM |
| Egrep Spickzettel überall? Suchen Sie nach dem Sinn von egrep-c | leelm | UNIX for Dummies Questions & Answers | 2 | 01-11-2008 03:37 PM |
| perl - Kopieren von Dateien | BG_JrAdmin | Shell Programmierung und Scripting | 1 | 12-13-2007 09:50 PM |
| Perl-Upload von Dateien | sstevens | UNIX für Fortgeschrittene und Experten | 16 | 02-24-2004 03:03 PM |