【Linux】ソートコマンドuniq

2302 ワード

多くの場合、私たちは1回のデータの中の同じ型の状態のデータの総数を計算します.例えば、lastを使って今月ホストにログインした人の身分を調べることができます.では、私は使用者ごとに彼らの総登録回数を調べることができますか?このときはソートや計算などのコマンドでサポートしなければなりません!ソートコマンドsortを紹介しましたが、ソートが完了したら、重複するデータを1つだけ表示したいのですが、どうすればいいですか?
[root@www ~]# uniq [-ic]
     :
-i  :          ;
-c  :    

   :   last      ,      ,          ;
[root@www ~]# last | cut -d ' ' -f1 | sort | uniq

   :   ,                  ?
[root@www ~]# last | cut -d ' ' -f1 | sort | uniq -c
      1
     12 reboot
     41 root
      1 wtmp
#            reboot   12  , root      41  !
# wtmp           last      ,        !

このコマンドは「重複する行を削除して1つだけ表示する」ために使用されます.例を挙げると、今月ホストにログインしたユーザーが誰なのかを知っていて、ログイン回数を気にしないで、上の例を使用して、(1)まずすべてのデータをリストします.(2)人名を独立させる.(3)並べ替え;(4)1つだけ表示!このコマンドは重複するものを減らしているので、当然『並べ替えたファイルに合わせる』処理が必要ですよ!
参考資料:http://vbird.dic.ksu.edu.tw/linux_basic/0320bash.php#uniq