|
|
|
|
Google Site
|
|||||||
| Φόρουμ | Εγγραφή | Ιστολόγιο | Man Σελίδες | Κανόνες Φόρουμ | Σύνδεσμοι | Λευκώματα | Συχνές ερωτήσεις | Χρήστες | Ημερολόγιο | Αναζήτηση | Η σημερινή Θέσεις | Mark Forums Read |
| Ο προγραμματισμός και η Shell Scripting Post ερωτήσεις για KSH, CSH, SH, BASH, Perl, PHP, sed, AWK ΑΛΛΑ και shell scripts και shell scripting γλώσσα εδώ. |
![]() |
|
|
Εργαλεία Θέματος | Αναζήτηση αυτό το νήμα | Βαθμολογήστε Νήμα | Display Modes |
|
|||
|
Awk πολλαπλές γραμμές με την 3η στήλη σε μια ενιαία γραμμή;
Έχω ένα τεράστιο αρχείο με πάνω από 1million καταχωρήσεις σε αυτό.
Μοιάζει κάπως έτσι: USER0001 | DEVICE001 | VAR1 USER0001 | DEVICE001 | VAR2 USER0001 | DEVICE001 | VAR3 USER0001 | DEVICE001 | VAR4 USER0001 | DEVICE001 | VAR5 USER0001 | DEVICE001 | VAR6 USER0001 | DEVICE002 | VAR1 USER0001 | DEVICE002 | VAR2 USER0001 | DEVICE002 | VAR3 USER0001 | DEVICE002 | VAR4 USER0001 | DEVICE002 | VAR5 USER0002 | DEVICE003 | VAR1 USER0002 | DEVICE003 | VAR2 USER0002 | DEVICE003 | VAR3 USER0002 | DEVICE003 | VAR4 USER0002 | DEVICE003 | VAR5 USER0002 | DEVICE004 | VAR1 USER0002 | DEVICE004 | VAR2 USER0002 | DEVICE004 | VAR3 USER0002 | DEVICE004 | VAR4 USER0002 | DEVICE004 | VAR5 USER0003 | DEVICE005 | VAR1 USER0003 | DEVICE005 | VAR2 USER0003 | DEVICE005 | VAR3 USER0003 | DEVICE005 | VAR4 USER0003 | DEVICE005 | VAR5 USER0003 | DEVICE005 | VAR6 USER0003 | DEVICE006 | VAR1 USER0003 | DEVICE006 | VAR2 USER0003 | DEVICE006 | VAR6 Θα ήθελα ένα τρόπο για την παραγωγή της μόνο uniq veriables σε μια ενιαία γραμμή σαν αυτό: USER0001 | DEVICE001 | VAR1 | VAR2 | VAR3 | VAR4 | VAR5 | VAR6 USER0001 | DEVICE002 | VAR1 | VAR2 | VAR3 | VAR4 | VAR5 USER0002 | DEVICE003 | VAR1 | VAR2 | VAR3 | VAR4 | VAR5 USER0002 | DEVICE004 | VAR1 | VAR2 | VAR3 | VAR4 | VAR5 USER0003 | DEVICE005 | VAR1 | VAR2 | VAR3 | VAR4 | VAR5 | VAR6 USER0003 | DEVICE006 | VAR1 | VAR2 | VAR6 Είναι αυτό εφικτό με awk ή θα χρειαστεί να χρησιμοποιήσετε perl array; Τελευταία επεξεργασία από SoMoney? Στις 12-04-2008 06:39 μμ.. |
| Sponsored Links |
|
|
|
|||
|
εντάξει αυτό είναι φοβερό, ποτέ δεν αναμένεται να αποτελέσει μία ναυτιλιακή!
Ι βέβαιος ότι θα ήθελε να μάθει πώς προσδιορίζεται nawk ήταν το καλύτερο εργαλείο για αυτή τη δουλειά. Γνωρίζω ότι μπορώ να rtfm και το σχήμα αυτό, αλλά αν είναι δυνατόν, εγώ σίγουρος ότι θα εκτιμήσουν τον τρόπο με τον οποίο η μετάφραση του FS και idx παίξει σε αυτή την τελική λύση ![]() Ή είναι ότι εκτός του τομέα των εν λόγω φόρουμ; Τελευταία επεξεργασία από SoMoney? Στις 12-04-2008 07:49 μμ.. |
|
|||
|
Κωδικός:
open FH,"<a.txt";
while(<FH>){
tr/\n//d;
my @tmp=split("[|]",$_);
$key=$tmp[0]."|".$tmp[1];
if(exists $hash{$key}){
$hash{$key}=sprintf("%s|%s",$hash{$key},$tmp[2]);
}
else{
$hash{$key}=$tmp[2];
}
}
close FH;
for $key (sort keys %hash){
print $key,"|",$hash{$key},"\n";
}
|
| Sponsored Links | ||
|
|
![]() |
| Σελιδοδείκτες |
| Εργαλεία Θέματος | Αναζήτηση αυτό το νήμα |
| Display Modes | Βαθμολογήστε αυτό το νήμα |
|
|
Περισσότερα UNIX και Linux Forum Θέματα που μπορεί να σας Χρήσιμη
|
||||
| Νήμα | Thread Starter | Φόρουμ | Απαντήσεις | Τελευταίο μήνυμα |
| που αντικαθιστά τις πολλαπλές γραμμές με ενιαία γραμμή | siba.s.nayak | Ο προγραμματισμός και η Shell Scripting | 3 | 05-28-2008 03:43 AM |
| Ενιαία στήλη με πολλαπλές στήλες σε awk | astroDave | Ο προγραμματισμός και η Shell Scripting | 2 | 03-27-2008 10:00 μμ |
| μόνο στήλη σε πολλαπλές στήλες | agibbs | UNIX για Ανδρείκελα Ερωτήσεις & Απαντήσεις | 7 | 12-05-2007 10:04 μμ |
| Ανάγνωση πολλαπλές γραμμές ως ενιαίο | εγκεφάλων | Ο προγραμματισμός και η Shell Scripting | 9 | 10-18-2006 11:16 AM |
| Η διαίρεση μιας ενιαίας γραμμής σε πολλαπλές γραμμές | thanuman | Ο προγραμματισμός και η Shell Scripting | 4 | 02-23-2005 04:56 AM |