Thread Datei - Zeilen bearbeiten - doppelte Einträge (6 answers)
Opened by Astralkeks at 2012-08-09 10:59

Linuxer
 2012-08-09 11:31
#160772 #160772
User since
2006-01-27
3882 Artikel
HausmeisterIn

user image
Raubtier hat schon einen guten Ansatz genannt.

Ich habe mich mal an einer Perl-Lösung versucht:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#! /usr/bin/perl
use strict;
use warnings;

my %hash;

while ( my $line = <DATA> ) {

    my ( $ip, @names ) = map { defined $_ ? $_ : () } split /\s+/, $line;

    for my $name ( @names ) {
        $hash{$ip}->{$name} = 1;
    }
}

# Ausgabe; die sort-Anweisungen können/sollten noch verfeinert werden
for my $ip ( sort keys %hash ) {
    print "$ip\t", join( ' ', reverse sort keys %{$hash{$ip}} ), "\n"
}



__DATA__
x.x.x.1     host1.de
x.x.x.1 host1.de
x.x.x.1 host1.de
x.x.x.1  host1.de host1
x.x.x.2 host2      host2.de
x.x.x.2   host2 host2.de
x.x.x.2  host2.de          host2
x.x.x.2     host2.de
x.x.x.2 host2


Resultat:
Code: (dl )
1
2
x.x.x.1 host1.de host1
x.x.x.2 host2.de host2
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Datei - Zeilen bearbeiten - doppelte Einträge