Я хотел бы переупорядочить файл с пакетом из этой схемы:
Default Web Site;anonymousAuthentication
Default Web Site;windowsAuthentication
Daisy;anonymousAuthentication
Daisy;windowsAuthentication
к этой схеме:
Default Web Site;anonymousAuthentication;windowsAuthentication
Daisy;anonymousAuthentication;windowsAuthentication
Как мне это сделать?
решение1
Вот ваши данные
$ cat t13.dat
Default Web Site;anonymousAuthentication
Default Web Site;windowsAuthentication
Daisy;anonymousAuthentication
Daisy;windowsAuthentication
Вот как получить результат
$ perl t13.pl t13.dat
Daisy;anonymousAuthentication;windowsAuthentication
Default Web Site;anonymousAuthentication;windowsAuthentication
Вот сценарий
$ cat t13.pl
#!/usr/bin/perl
use strict;
use warnings;
my %values;
while (<>) {
chomp;
next if /^\s*$/; # ignore empty lines
my ($category, $value) = split /;/, $_, 2;
$values{$category} .= ';'.$value;
}
for my $category (sort keys %values) {
print "$category$values{$category}\n";
}
Вы, кажется, используете Windows, установитеПерлпервый.
Если ваши данные не содержат пустых строк и вас устраивают немного более зашифрованные решения:
$ perl -lanF\; -e'$v{$F[0]}.=";".$F[1]; END{print "$_$v{$_}" for keys %v}' t13.dat
Daisy;anonymousAuthentication;windowsAuthentication
Default Web Site;anonymousAuthentication;windowsAuthentication