このスクリプトの出力ラインを一意に印刷し、各行の繰り返し回数を印刷する方法[閉じる]

このスクリプトの出力ラインを一意に印刷し、各行の繰り返し回数を印刷する方法[閉じる]
#!/bin/bash

who |grep "10\.1\.109" | grep -v berianho | cut -f1 -d " " | sort -n|

while read user 
do 
    grep -a ^$user: /etc/passwd | cut -f5 -d:
done

ベストアンサー1

単純なPerlスクリプト...

#!/usr/bin/perl

my %hash;

open FH, 'who |' or die;
while ( <FH> ) {
   $hash{$1}++ if /^(\S+).*(10\.\d+\.\d+\.\d+)/;
}
close FH;

while ( ($k,$v) = each %hash ) {
   printf "%3d %s\n", $v, $k;
}

exit;

おすすめ記事