【Linux】ソートコマンドuniq
2302 ワード
多くの場合、私たちは1回のデータの中の同じ型の状態のデータの総数を計算します.例えば、lastを使って今月ホストにログインした人の身分を調べることができます.では、私は使用者ごとに彼らの総登録回数を調べることができますか?このときはソートや計算などのコマンドでサポートしなければなりません!ソートコマンドsortを紹介しましたが、ソートが完了したら、重複するデータを1つだけ表示したいのですが、どうすればいいですか?
このコマンドは「重複する行を削除して1つだけ表示する」ために使用されます.例を挙げると、今月ホストにログインしたユーザーが誰なのかを知っていて、ログイン回数を気にしないで、上の例を使用して、(1)まずすべてのデータをリストします.(2)人名を独立させる.(3)並べ替え;(4)1つだけ表示!このコマンドは重複するものを減らしているので、当然『並べ替えたファイルに合わせる』処理が必要ですよ!
参考資料:http://vbird.dic.ksu.edu.tw/linux_basic/0320bash.php#uniq
[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