shell 正規表示式

2021-10-25 09:44:17 字數 2584 閱讀 3795

2.基礎正規表示式

3.擴充套件正規表示式

4.常用輔助工具

4.2 uniq重複統計工具

4.3 tr替換工具

使用字串來描述、匹配一系列符合某個規則的字串

1.基礎正規表示式

2.擴充套件正規表示式

普通字元:大小寫字母、數字、標點符號及一些其他符號

元字元:在正規表示式中具有特殊意義的專用字元

grep、sed

\:轉義字元,使具有特殊意義的元字元作為普通字元使用

^:匹配字串開始的位置

$ :匹配字串結束的位置

.:匹配除\n之外的任意的乙個字元,例如:go.d、g…d

*:匹配前面子表示式0次或者多次,例如:goo*d、go.*d

[list]:匹配list列表中的乙個字元

[^list]:匹配任意不在list列表中的乙個字元

\:匹配前面的子表示式最少n次

:匹配前面的子表示式最少n次,最多無上限

:匹配前面的子表示式最少n次,最大m次

grep 【選項】 引數
選項:

-n:顯示行號

-i:不區分大小寫

-v:反向過濾(即查詢不符合引數條件的)

1.讀取:從輸入流讀取內容臨時放入快取區

2.執行:在模式空間順序執行命令

3.顯示:傳送修改後的內容到輸出流,傳送後,模式空間被清空

預設sed命令都在模式空間內執行,因此輸入流的檔案內容不會被改變,除非是重定向儲存輸出

sed 【選項】 '操作' 引數
選項:

-e script:指定sed編輯命令(script:命令)

-f scriptfile :指定的檔案是sed編輯命令(scriptfile:命令檔案)

-n、–quiet、silent:表示僅顯示處理後的結果

-i:直接編輯文字檔案(即會改變輸入流檔案內容)

操作:a:增加,在當前行下面增加一行指定內容

i:增加:在當前行上面增加一行指定內容

c:替換,將選定行替換為指定內容

s:替換,將選定字元替換為指定字元

y:字元轉換

d:刪除,刪除指定行

h:複製,複製到剪貼簿

g:貼上覆蓋,將剪貼簿內容覆蓋到指定行

g:貼上追加,將剪貼簿內容追加到指定行後

p:列印,如果同時指定行,表示列印指定行,若不指定行,列印所有內容,若有非列印字元,以ascii碼輸出,通常與-n選項一起使用

w:儲存為檔案(即將操作結果另存為)

r:讀取指定檔案

egrep、awk

+:匹配前面子表示式1次以上

?:匹配前面子表示式0次或1次

():將括號內容看做乙個整體

|:以或方式匹配字串

用於無互動情況實現複雜操作,通常為系統取值、取值、匹配引數

逐行讀取文字,預設以空格為分隔符進行分隔,將分隔所得的各個字段儲存到內建變數中,並按模式或條件執行編輯命令

按行輸出

按欄位輸出

通過管道符、雙引號呼叫shell命令

①awk 【選項】 '模式或條件' 檔案

②awk -f 命令指令碼檔案 檔案

選項:

-f:檢索行時以什麼為間隔,預設是空格(例:「-f:」即以:為間隔 )

內建變數:

fs:指定每行文字的字段分隔符,和-f選項同義

nf:當前處理的行的字段個數

nr:當前處理的行的行號

$0:當前處理的行的整行內容

$n:當前處理行的第n個字段

filename:被處理的檔名

rs:資料記錄分隔,預設為\n,即每行為一條記錄

依據不同資料型別進行排序

排序方式:

字元排序(預設)

數字排序

sort 【選項】 引數
選項:

-f:忽略大小寫

-b:忽略每行前面的空格

-m:按月份排序

-n:按數字排序

-r:反向排序

-u:等同於uniq工具,表示重複資料時僅顯示一行

-t:指定分隔符,預設用tab鍵分隔

-o 《輸出檔案》:將排序的結果儲存至指定檔案

-k:指定排序區域

篩選重複行

uniq 【選項】 【引數】
選項:

-c:進行計數,統計重複行

-d:僅顯示重複行

-u:僅顯示出現一次的行

替換操作

tr 【選項】 【引數】
選項:

-c:取代所有不屬於第一字符集的字元

-d:刪除所有屬於第一字符集的字元

-s:把連續重複的字元以單獨乙個字元表示

-t:先刪除第一字符集較第二字符集多出的字元,再做替換(有三種情況)

##若第一字符集比第二字符集多,從頭覆蓋;

若第一字符集和第二字符集等量,則全部覆蓋替換;

若第二字符集比第一字符集多,則只覆蓋和第一字符集長度一樣的第二字符集內容

shell正規表示式

句點 匹配單字元 1 匹配任意單ascii 字元,可以為字母,或為數字。2 舉例 xc.匹配dexc1t 23xcdf 等,w.w.w.匹配rwxrw rw 行首以 匹配字串或字串行 1 允許在一行的開始匹配字元或單詞。2 舉例 01 匹配0011cx4 c01sdf 等,d 匹配drwxr xr ...

shell正規表示式

句點 匹配單字元 1 匹配任意單ascii 字元,可以為字母,或為數字。2 舉例 xc.匹配dexc1t 23xcdf 等,w.w.w.匹配rwxrw rw 行首以 匹配字串或字串行 1 允許在一行的開始匹配字元或單詞。2 舉例 01 匹配0011cx4 c01sdf 等,d 匹配drwxr xr ...

shell 正規表示式

一 從頭開始 echo the book sed n the p 二 結尾 三 聯合定位 this is a test 四 點字元 用於匹配除換行符之外的任何乙個單一字元 五 字元類 定義一類字元,用於匹配文字模式中的某一位置 例如 echo n ch at p data the cat is sl...