Linux筆記(49)——正則表示式與字元命令
阿新 • • 發佈:2019-01-27
正則表示式
正則表示式用於字串的模式分割,匹配,查詢以及替換操作
比如有一篇很長很長的文章,我們如何找到自己想要的資訊?可以使用正則的匹配功能
正則表示式與萬用字元
萬用字元有:
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命令
統計命令