1. 程式人生 > >Linux筆記(49)——正則表示式與字元命令

Linux筆記(49)——正則表示式與字元命令

正則表示式

正則表示式用於字串的模式分割,匹配,查詢以及替換操作

比如有一篇很長很長的文章,我們如何找到自己想要的資訊?可以使用正則的匹配功能

正則表示式與萬用字元

萬用字元有:
1. * :匹配任意字元
2. ?:匹配任意一個字元
3. []:匹配中括號內任意一個字元

這裡寫圖片描述

一般操作字串的命令支援正則,操作檔案的命令只支援萬用字元

基礎正則表示式

這裡寫圖片描述

字元擷取命令

cut命令

這裡寫圖片描述
預設是以tab鍵為分隔符

df命令的結果是用空格作為分割符,cut是無法擷取的

printf命令

這個命令其實跟字元擷取沒什麼關係,但是經常會用到這個命令,這個格式化輸出命令

這裡寫圖片描述

這裡寫圖片描述
printf檔案中的內容

這裡寫圖片描述

awk命令

這裡寫圖片描述

awk命令中的輸出不能用echo,要用printf,也可以用print。print會自動輸出換行符

awk預設用空格和tab作為分隔符

例如:
這裡寫圖片描述
$0是檔名

awk執行流程:
awk是一行一行讀,然後一列一列讀,並且讀每一列時,判斷條件是否成立,成立的話執行動作

cut無法讀取df命令的結果,但是awk可以擷取

如:
這裡寫圖片描述

Use這一列,有百分號,如果我們只想要前面的數值,可以結合cut命令,如:

這裡寫圖片描述

BEGIN和END

BEGIN:作為awk命令的條件,表示在所有動作之前
END:作為awk命令的條件,表示在最後

如:
這裡寫圖片描述

FS內建變數

awk預設用空格和tab作為分隔符,我們可以利用BEGIN來指定FS變數值,也就是指定分隔符

這裡寫圖片描述

關係運算符

這裡寫圖片描述

sed命令

用來替換字元
這裡寫圖片描述

這裡寫圖片描述

例子1

這裡寫圖片描述

例子2

這裡寫圖片描述

例子3

這裡寫圖片描述

例子4

這裡寫圖片描述

例子5

這裡寫圖片描述

注意:
1. 如果沒有/g,那麼只替換第一個符合的舊字串,加了/g,所有符合的舊字串都會被替換
2. s前面可以加行號,表示只操作那一行

sort命令

排序命令

這裡寫圖片描述

例子1

按字母順序排序
這裡寫圖片描述

-r 取反
這裡寫圖片描述

例子2

以冒號為分隔符,從第3個欄位開始,第3個欄位結束來排序
這裡寫圖片描述

但是結果卻是把第三個欄位當作字串來排序

加-n以數值來排序

這裡寫圖片描述

wc命令

統計命令
這裡寫圖片描述