很多時候,我們都會去計算一次資料裡頭的相同型態的資料總數,舉例來說, 使用 last 可以查得這個月份有登陸主機者的身份。那麼我可以針對每個使用者查出他們的總登陸次數嗎? 此時就得要排序與計算之類的命令來輔助了!底下我們介紹幾個好用的排序與統計命令,首先是排序命令sort。
[root@www ~]# sort [-fbmnrtuk] [fileor stdin]
選項與引數:
-f :忽略大小寫的差異,例如 a 與 a 視為編碼相同;
-b :忽略最前面的空格符部分;
-m :以月份的名字來排序,例如 jan, dec 等等的排序方法;
-n :使用『純數字』進行排序(預設是以文字型態來排序的);
-r :反向排序;
-u :就是 uniq
,相同的資料中,僅出現一行代表;
-t :分隔符,預設是用 [tab] 鍵來分隔;
-k :以那個區間 (field) 來進行排序的意思
範例一:個人賬號都記錄在 /etc/passwd
下,請將賬號進行排序。
[root@www ~]# cat /etc/passwd | sort
adm:x:
3:4:adm:/var/adm:/sbin/nologin
apache:x:
48:48:apache:/var/www:/sbin/nologin
bin:x:
1:1:bin:/bin:/sbin/nologin
daemon:x:
2:2:daemon:/sbin:/sbin/nologin
# 鳥哥省略很多的輸出~由上面的資料看起來,
sort
是預設『以第乙個』資料來排序,
# 而且預設是以『文字』型態來排序的喔!所以由 a 開始排到最後囉!
範例二:/etc/passwd
內容是以 : 來分隔的,我想以第三欄來排序,該如何?
[root@www ~]# cat /etc/passwd | sort -t '
:' -k 3
root:x:
0:0:root:/root:/bin/bash
uucp:x:
10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:
11:0:operator:/root:/sbin/nologin
bin:x:
1:1:bin:/bin:/sbin/nologin
games:x:
12:100:games:/usr/games:/sbin/nologin
# 看到特殊字型的輸出部分了吧?怎麼會這樣排列啊?呵呵!沒錯啦~
# 如果是以文字型態來排序的話,原本就會是這樣,想要使用數字排序:
# cat /etc/passwd | sort -t '
:' -k 3 -n
# 這樣才行啊!用那個 -n 來告知 sort
以數字來排序啊!
範例三:利用
last
,將輸出的資料僅取賬號,並加以排序
[root@www ~]# last | cut -d '
' -f1 | sort
sort 同樣是很常用的命令呢!因為我們常常需要比較一些資訊啦! 舉個上面的第二個例子來說好了!今天假設你有很多的賬號,而且你想要知道最大的使用者 id 目前到哪一號了!呵呵!使用 sort 一下子就可以知道答案咯!當然其使用還不止此啦! 有空的話不妨玩一玩!
Linux 排序命令sort
很多時候,我們都會去計算一次資料裡頭的相同型態的資料總數,舉例來說,使用 last 可以查得這個月份有登陸主機者的身份。那麼我可以針對每個使用者查出他們的總登陸次數嗎?此時就得要排序與計算之類的命令來輔助了!底下我們介紹幾個好用的排序與統計命令,首先是排序命令sort。root www sort f...
Linux排序命令sort筆記
很多時候linux需要對文字相對比較規範的文字資料進行排序,這時候可以使用linux系統下的sort命令進行處理。語法格式 sort ntkr filename 常用引數 n 根據數字進行排序 t 指定的分隔符 k 指定分隔符的第幾列 r 降序排序 用法示例 a 98 80 100 95 d 88 ...
linux基礎命令 排序 sort
sort t 指定分隔符 k 指定那一列排序 root rongbiz002 awk www wwwlogs www.rongbiz.com access log sort t k2 head 120.0.113.75 112.0.141.184 112.0.147.34 112.0.147.34 ...