就linux三劍客簡單歸納:-d《間隔字元》 用指定的間隔字元取代跳格字元;1:awk
習題1:用 awk 中檢視伺服器連線狀態並彙總
netstat -an|awk '
/^tcp/end
'established
1listen
20awk
'end
total size
is :172230
21 /icons/poweredby.png 83076
14 / 70546
8 /icons/apache_pb.gif 18608
awk基本用法:awk –f [:」 」] 『beginend』
它裡面可以用到if,
for,陣列等類c的語法,其中陣列下標除了可以是數字外還可以是字串,這就大大增強了它的文字統計能力。在awk裡變數可以不用先定義,可以直接用,初始值為0。
關於逗號的用法:
awk和sed裡都可以用,用法為awk 『/a/,/b/end』 filename 匹配所有符合從字元a到第乙個字元b的內容並後面事件處理
sed –n 『/a/,/b/p』 filename 匹配所有符合從字元a到第乙個字元b的內容並輸出到螢幕
2:sed
常用引數:
-i 直接修改文件讀取的內容,不在螢幕上輸出
-n 當選項-n和命令p同時出現時,sed 可列印選定的內容
-r sed 使用擴充套件正則
3:grep
常用引數:
-i 忽略字元大小寫的差別
-w 精確查詢指定字串,找到了就返回字元所在的那一行
-o 查詢指定字元,僅返回查詢的內容,一般加e配合,查詢正規表示式
-e 選項使用擴充套件正規表示式
練習:在下面文字內容裡統計device{}裡的key的數量,其他地方的key不算。假如filename為case.log:
key
isa linuxer.
device:
keydevice:
key key
device:
device:
key個人解答方法:1:
awk
'/^device :/ end
'case
.log
解釋:先匹配所有符合device開頭且每次匹配到第乙個}的內容,再在每行的每個字段進行匹配key,最後輸出key的num值。2:
sed –n 『/device :/p』 case.log | tr 「 」 「\n」| grep –w 「key」| wc -l
解釋:先用sed進行匹配device裡的所有含key的行,在用tr把空格換成換行,再用grep去匹配key的行(每行乙個字元段),最後用wc –l統計行的數量及為key的num值。3:
sed –n 『/device :/p』 case.log | awk –f 「 」 『 end』
sort 命令對 file 引數指定的檔案中的行排序,並將結果寫到標準輸出。如果 file 引數指定多個檔案,那麼 sort 命令將這些檔案連線起來,並當作乙個檔案進行排序。
常用引數:
-n :使用『純數字』進行排序(預設是以文字型態來排序的);
-r :反向排序;
-t :分隔符,預設是用 [tab] 鍵來分隔;
-k :以那個區間 (field) 來進行排序的意思
sort 是預設以第乙個資料來排序,而且預設是以字串形式來排序,預設從小到大順序。
cat /etc/passwd | sort -t '
:' -k 3
第三欄來排序,小到大
uniq命令可以去除排序過的檔案中的重複行,因此uniq經常和sort合用。也就是說,為了使uniq起作用,所有的重複行必須是相鄰的。
常用引數:
-i :忽略大小寫字元的不同
-c :進行計數
-u :只顯示唯一的行
-d :僅顯示存在重複的行
cut命令可以從乙個文字檔案或者文字流中提取文字列。
常用引數:
-c :以字元為單位進行分割
-d :後面接分隔字元。與 -f 一起使用;
-f :依據 -d 的分隔字元將一段資訊分割成為數段,用 -f 取出第幾段的意思;
echo $path | cut -d '
:' -f 5
找出第五個路徑
echo $path | cut -d '
:' -f 1-3,5
找出第一到第三個路徑
echo $path | cut -d '
:' -f 3-找出第三到最後乙個路徑
wc命令統計檔案裡面有多少行,多少單詞,多少字元。
常用引數:
-l :僅列出行;
-w :僅列出多少字(英文單字);
-m :多少字元;
tee命令讀取標準輸入的資料,並將其內容輸出成檔案。
參 數:
-a或 附加到既有檔案的後面,而非覆蓋它;
[root@localhost ~]# who | tee who.out
root pts/0 2009-02-17 07:47 (123.123.123.123)
[root@localhost ~]# cat who.out
root pts/0 2009-02-17 07:47 (123.123.123.123)
[root@localhost ~]# pwd | tee -a who.out
/root
[root@localhost ~]# cat who.out
root pts/0 2009-02-17 07:47 (123.123.123.123)
/root
paste命令用於合併檔案的列,paste指令會把每個檔案以列對列的方式,一列列地加以合併。
引數:
-s 串列進行而非平行處理;
Linux命令三劍客
grep的簡單使用 grep的主要作用 文字搜尋工具,根據使用者指定的 模式 對目標文字逐行進行匹配檢查 列印匹配到的行 grep的工作模式 由正規表示式字元及文字字元所編寫的過濾條件 grep的用法 grep options pattern file options v 顯示不被pattern匹配...
文字三劍客
檔案萬用字元和正規表示式 文字過濾工具grep linux系統中,一切皆檔案。強大的文字編輯和處理工具便必不可少了,在linux系統中,有文字處理三劍客 grep,sed,awk。在進行介紹三大工具前,我們先總結一下檔案萬用字元和正規表示式。檔案萬用字元主要就是對檔案的查詢進行檔名的模糊查詢,而正規...
三劍客 高階
awk 是一種程式語言,用於在linux unix下對文字和資料進行處理 awk 資料可以來自標準輸入,乙個或多個檔案,或其他命令的輸出 awk 通常是配合指令碼進行使用,是乙個強大的文字處理工具。01.進行逐行掃瞄檔案,從第一行到最後一行 02.尋找匹配的特定模式的行,在行上進行操作 03.如果沒...