Mon 0100
Mon 0700
Tue 0700
Wen 0100
Wen 0700
Thu 0100
Thu 0700
Fri 0100
Fri 0700
Sat 0100
Sun 0100
Sun 0700
####
Mon Tue Wen Thu Fri Sat Sun
0100 X X X X X X
0700 X X X X X X
####
perl -lane '
$h{$F[0]}++ or push @days, $F[0];
$h{$F[1]}++ or push @time, $F[1];
$data{$F[0],$F[1]}++
}{
print "\t\t", join "\t", @days;
for $t (@time) {
print $t, "\t\t", join "\t", map { $data{$_,$t} ? "X" : " " } @days;
}
' file
####
perl -ane '
$h{$F[0]}++ or push @days, $F[0];
$h{$F[1]}++ or push @time, $F[1];
$data{$F[0],$F[1]}++
}{
print "\t\t", join "\t", @days;
print "\n";
print for join "\t", map { $t = $_ ; (map { $data{$_,$t} ? "X" : " " } @days) } @time;
' file