1、基本正規表示式字元,擴充套件正規表示式,預定義中括號表示式和元字元
一、基本正規表示式(bre)集合:
(1)^:尖角號,用法為「^oldboy」,表示匹配以oldboy單詞開頭的行
(2)$:美元符,用法為「oldboy$」,表示匹配以oldboy單詞結尾的行
(3)^ $:組合符,表示空行,邏輯解釋就是以「^」結尾的行,或者以「$」開頭的行
(4).:點號,表示匹配任意乙個且只有乙個字元(但是不能匹配空行)
(5)\:轉義字元,讓有特殊含義的字元脫掉馬甲,現出原形,如「\ .」只表示小數點
(6)*:匹配前乙個字元(連續出現)0次或1次以上,注意,當重複0次的時候,表示什麼也沒用(空),即匹配所有內容
(7).*:組合符,匹配所有內容
(8)^.*:組合符,匹配以任意 多個字元開頭的內容
(9).*$:組合符,匹配以任意多個字元結尾的內容
(10)[abc]:匹配以「」集合內的任意乙個字元a或b或c;[abc]也可以寫成[a-c]
(11)[^abc]:匹配不包含「^」後的任意字元a或b或c,這裡的「^」表示對[abc]的取反,此處的「^」不能用「!」替代
二、擴充套件正規表示式(ere)集合:
(1)+:匹配前乙個字元1次或多次
(2)[:/]+:匹配括號內的「:」或「/」字元1次或多次
(3)?:匹配前乙個字元0次或1次
(4)|:表示或者,即同時過濾多個字串
(5)():分組過濾,被括起來的內容表示乙個整體,另外「()」的內容可以被後面的「\n」引用,n為數字,表示引用第幾個括號的內容
(6)\n:引用前面「()」(小括號)裡的內容,例如,(aa)\1,匹配aaaa
(7)a:匹配前乙個字元最少n次,最多m次
(8)a:匹配前乙個字元最少n次
(9)a:匹配前乙個字元正好n次
(10)a:匹配前乙個字元最多m次
特別強調:支援擴充套件正則的3種方法
□grep命令加「-e」引數即可支援擴充套件正則
□grep命令不加引數也可以使用擴充套件正規表示式的特殊字元,但有個條件,就是需要在使用的每個特殊的字元前面加「\」(反斜線)
□egrep命令可直接支援擴充套件正則
三、預定義特殊中括號表示式:
[:alnum:]:匹配任意乙個字母或數字字元,相當於[a-za-z0-9]
[:alpha:]:匹配任意乙個大小寫字母字元,相當於[a-za-z]
[:blank:]:空格與製表符(橫向和縱向)
[:digit:]:匹配任意乙個數字字元,相當於[0-9]
[:lower:]:匹配小寫字母,相當於[a-z]
[:upper:]:匹配大寫字母,相當於[a-z]
[:punct:]:匹配標點符號
[:space:]:匹配乙個包括換行符、回車等在內的所有空白符
[:graph:]:匹配任何乙個可以看得見的且可以列印的字元
[:xdigit:]:任何乙個十六進製制數(即:0-9,a-f,a-f)
[:cntrl:]:任何乙個控制字元(ascii字符集中的前32個字元)
[:print:]:任何乙個可以列印的字元
四、元字元表示式:
元字元是一種perl風格的正規表示式,並不是所有的文字處理工具都支援,只有一部分文字處理工具支援元字元
(1)\b:匹配單詞邊界,例如,\boldboy\b只匹配oldboy單詞不匹配oldboy
(2)\b:匹配非單詞的邊界,例如,oldboy\b匹配oldboy123中的oldboy,不匹配單獨的oldboy單詞
(3)\w:匹配字母、數字與下劃線,等價於[_[:alnum:]]
(4)\w:匹配字母、數字與下劃線以外的字元,等價於[^_[:alnum:]]
(5)\d:匹配單個數字字元,注意,這個表示式需要使用grep -p引數才能識別
(6)\d:匹配單個非數字字元,注意,這個表示式需要使用grep -p引數才能識別
(7)\s:匹配1位空白字元,注意,這個表示式需要使用grep -p引數才能識別
(8)\s:匹配1位非空白字元,注意,這個表示式需要使用grep -p引數才能識別
特別說明:網上有很多特殊的元字元列表,大部分都不能直接被grep等命令使用
2、linux三劍客命令grep、sed、awk
(1)功能說明:sed是操作、過濾和轉換文字內容的強大工具。sed的常用功能包含對檔案實現快速增刪改查,其中查詢的功能中最常用的兩大功能是過濾(過濾指定字串)和取行(取出指定的行)
(2)語法格式:
sed [選項] [sed內建命令字元] [輸入檔案]
(3)sed的常用引數選項
-n:取消預設sed的輸出,常與sed內建命令的p連用
-i:直接修改檔案內容,而不是輸出到終端。如果不使用「-i」選項則sed只是修改儲存在記憶體中的資料,並不會影響磁碟上的檔案
(4)sed的常用內建命令字元功能說明
d:全拼delete,表示匹配行的文字
i:全拼insert,表示插入文字,在指定行前新增一行或多行文字
p:全拼print,表示列印匹配行的內容,通常p會與選項「-n」一起使用
s/regexp/replacement/g:匹配regexp部分內容,用replacement替換regexp匹配的內容,regexp部分可以使用正規表示式,在replacement部分可以使用特殊字元「&」和「\1-\9」等匹配regexp的部分內容。在實戰場景中,s/regexp/replacement/g結尾常與g匹配做全域性的替換
二、awk命令:
(1)功能說明:awk不僅僅是linux系統中的乙個命令,而且其還是一種程式語言,可以用來處理資料和生成報告(excel)。處理的資料可以是乙個或多個檔案,它是linux系統最強大的文字處理工具,沒有之一。
(2)awk命令常用功能:
□指定分隔符顯示某幾列:awk -f "get|http" '' access.log直接獲取顯示出日誌檔案的url這一列
□通過正規表示式取出想要獲取的內容:awk '$6~/failed/' /var/log/secure分析生產環境中的日誌找出誰在破解使用者密碼
□顯示某個範圍內的內容:awk 'nr==20,nr==30' filename顯示檔案的20到30行
□通過awk進行統計計算:awk 'end' ett.txt進行總和計算(高階功能)
□awk陣列計算與去重:awk 'end' access.log對日誌進行統計與計數(高階功能)
(3)語法格式:
awk [option] 'pattern' file ...
awk [引數] '條件' 檔案 ...
(4)awk命令的引數選項及說明
-f:指定字段分隔符
-v:定義或修改乙個awk內部的變數
(5)常用功能:
$0:當前整行記錄
$n:當前記錄的第n個列,欄位間由fs或-f引數指定分隔符
nf:當前記錄中列的個數,也就是包含多少列
$(nf-n):倒數第n+1列,n為數字
nr:已經獨處的記錄數,也就是行號,從1開始
Linux學習筆記1 1
arm架構處理器的工作模式 usr user 普通應用程式的執行模式 fiq fast interrupt 快速中斷模式,用於處理快速的事件,例如高速資料傳輸 irq interrupt 外部中斷模式,用於處理通用中斷事件 svc supervisor 又稱保護模式,作業系統使用的特權模式 abt ...
linux學習筆記11
linux和windows互傳檔案 首先的要安裝乙個軟體,只能使用xsell,不能使用putty因為putty不支援。安裝完軟體後就可以與windows相互傳檔案了 有linux向windows傳檔案使用sz反之使用rz 使用者配置檔案和密碼配置檔案 etc passwd 存放使用者的配置檔案。et...
學習筆記1 1
1.virtual修飾符會被 繼承的。private 也被整合,只事派生類沒有訪問許可權而已。virtual可加可不加。子類的空間裡有父類的所有變數 static除外 同乙個函式只存在乙個實體 inline除外 子類覆蓋它的函式不加virtual 也能實現多型。在子類的空間裡,有父類的私有變數。私有...