Linux日記:cut grep sort wc&uniq
時隔多日,終於有時間寫linux的部落格了,最近感慨良多,不過終是無法割捨對於linux的熱愛,遂繼續研究,不願因雜事而耽誤前進之腳步——額,我文藝了哈。
cut命令。
cut的基本用法如下:
cut-d '分隔字元'-f fields
cut-c 字元範圍
參數解釋:-d:後面跟分隔的字元,與-f一起使用。-f:依據-d的分隔字元將一段資訊切割成為書段,用-f取出第幾段的意思;-c:以字元(characters)為單位取出固定字元區間。
執行個體:
1,取出PATH變數的第3個路徑:
echo$PATH | cut -d ':' -f 5
2,取出PATH變數的第3到5個路徑:
echo$PATH | cut -d ':' -f 3-5
3,取出PATH變數的第3和第5個路徑:
echo$PATH | cut -d ':' -f 3,5
4,將export輸出結果的每行前12個字元截去:
export| cut -c 12-
grep命令
此處不涉及grep關於Regex的進階用法。
基本用法如下:
grep[-acinv] [--color=auto] '尋找字串'filename
-a:將binary檔案以txt檔案的方式尋找資料
-c:計算找到'尋找字串'的次數
-i:忽略大小寫不同
-n:輸出行號
-v:反向選擇,即顯示出沒有'尋找字串'內容的那一行
--color=auto:可以將找到的關鍵字部分加上顏色顯示,一般作業系統預設有aliasgrep='grep –color=auto'
執行個體:
1,尋找last中reboot所在的行:
last| grep 'reboot'
2,反向選擇:
last| grep -v 'reboot'
sort命令
sort[-fbMnrtuk]
-f:忽略大小寫差異,這個很怪異,不是-i,尋找協助之後才發現是:foldlower case to upper case characters的意思。
-b:忽略最前面的空格符部分
-M:以月份的名字來排序
-n:使用“純數字”進行排序
-r:反向排序
-u:就是uniq,相同的資料中,僅出現一行代表
-t:分隔副,預設為Tab
-k:以哪個區間來進行排序。
執行個體:
1,個人帳號的排序:
cat/etc/passwd | sort
2,以第三列排序:
cat/etc/passwd | sort -t ':' -k 3
3,以點三列的數字方式排序:
cat/etc/passwd | sort -t ':' -k 3 -n
4,將last的輸出截取帳號,並排序:
last| cut -d ' ' -f 1 | sort
wc命令
用法:
wc[-lwn]
-l:僅列出行
-w:僅列出多少字(英文單詞)
-n:多少字元
執行個體:
1,計算/etc/manpath.config有多少個字
cat/etc/manpath.config | wc
2,計算這個月登入系統的總人數:
last| grep [a-zA-Z] | grep -v 'wtmp' | wc -l
uniq命令
用於將重複的資料只顯示一次。
uniq[-ic]
-i:忽略大小寫差異
-c:進行計數
執行個體:
1,使用last將帳號列出,僅取出帳號列,進行排序後僅輸出一位。
last| cut -d ' ' -f 1 | sort | uniq
2,計算登入的次數:
last| cut -d ' ' -f 1 | sort | uniq -c