bre模式
純文字匹配
從日誌檔案中查詢spring boot啟動埠,假設日誌檔案為nohup.log,可以使用一下命令進行匹配。
sed -n '/port(s)/p' nohup.out
cat nohup.out | grep "port(s)"
# 此時輸出的結果會標紅,建議使用此方式
特殊字元
linux正規表示式中主要的核心特殊字元為:.*^${}\+?|()
,當需要匹配的字串中包括這些字元需要對字元進行轉義。
echo
"hello\fhdkajf"
| grep '\\'
echo
"hello\fhdkajf"
| sed -n '/\\/p'
# 此處sed可以修改為awk命令
錨字元
正規表示式的錨點主要包括^
和$
兩個字元,$
可以匹配字元出現在行尾,^
匹配字元出現在行首。
echo
"hello\fhdkajf"
| grep "^hello"
# 可以匹配出
echo
"hello\fhdkajf"
| grep "^hello$"
# 匹配行資料為hello的行,返回空
點號字元
.
點號字元標識乙個除換行符以外的任意乙個字元。.
點號位置必須包含乙個字元,如果不佔乙個字元則直接返回空,匹配不上
echo
"hello\fhdkajf"
| grep "^h.llo"
## 列印 hello\fhdkajf
echo
"heello\fhdkajf"
| grep "^h.llo"
# 輸出為空
echo
"hllo\fhdkajf"
| grep "^h.llo"
# 輸出為空
字元組
字元組是限定每一位置的字元是在字元組內的字元,使用中括號表示其中的值,舉例如下:
echo
"hallo\fhdkajf"
| grep "^h[ae]llo"
# 此時只能匹配乙個字元
字元組排除(^
)
echo
"hallo\fhdkajf"
| grep "^h[^ae]llo"
# 排除第二個字元為a和e
echo
"hqllo\fhdkajf"
| grep "^h[^ae]llo"
# 輸出 hqllo\fhdkajf
區間([?-?]
) 閉區間
echo
"hqllo\fhdkajf"
| grep "^[h-q]qllo"
# hqllo\fhdkajf
echo
"qllo\fhdkajf"
| grep "^[h-q]llo"
# qllo\fhdkajf
特殊字元組
regex正規表示式中包括一些特殊的字元組簡寫,可以描述部分字元組,如下列舉了所有的特殊的字元組:
字元組描述[[:alpha:]]
匹配任意字母字元,包括a-z和a-z
[[:alnum:]]
匹配任意字母字元和數字,包括a-z和a-z和0-9
[[:blank:]]
匹配空格和製表符
[[:space:]]
匹配任意空白字元:空格、製表符、nl、ff、vt和cr
[[:upper:]]
匹配任意大寫字母,a-z
[[:lower:]]
匹配任意小寫字母,a-z
[[:digit:]]
匹配任意數字,0-9
[[:print:]]
匹配任意可列印字元
[[:punct:]]
匹配標點符號
星號字元後面放置星號表明該字元必須在匹配模式的文字**現0次或多次
echo
"qllo\fhdkajf"
| grep "^ql*"
# qllo\fhdkajf # l出現了0次或多次
擴充套件正規表示式
問號?
字元可以出現0次或1次。
echo
"bet"
| awk -n '/be?t/p'
加號+
字元出現至少1次。
echo
"bet"
| awk -n '/be+t/p'
花括號(設定上下限)
預設情況下,gawk程式不會識別正規表示式間隔。必須指定gawk程式的–re- interval命令列選項才能識別正規表示式間隔。
echo
"beet"
| gawk --re-interval '/bet/'
# beet
echo
"bet"
| awk --re-interval -n '/bet/'
# 空echo
"bet"
| awk --re-interval -n '/bet/'
# bet
echo
"bet"
| awk --re-interval -n '/bet/'
# 空
管道符號(|
或的關係)
echo
"the cat is asleep"
| gawk '/cat|dog/'
表示式分組()
echo
"he has a hat."
| gawk '/[ch]at|dog/'
字元
意義條件型別
*
匹配行中的字元出現0次或多次
字元出現0次或n次
.
匹配除換行符意外的任意乙個字元,有且僅有乙個
充分必要條件
?
匹配字串出現0次或一次
必要條件
+
匹配字元至少出現一次
充分必要條件
注意事項:
每天30分鐘吊打Linux常用命令專題 SED命令
sed編譯器被稱為流編輯器。可以在處理資料之前基於事先提供的一組規則遍歷資料流。可以包括文字檔案中的搜尋關鍵字全域性替換 區域性替換 特定行,和標記 刪除行 新增或追加行 處理單個字元的轉換 命令 y 執行效率極高。sed命令格式 sed options program fileoptions常用的...
《每天堅持30分鐘》摘錄
第一章只有學習才能成功 1 有 學習意識 時,學習慾望最大。這時集中學習的話,往往收效很大。2 每天學習30分鐘持續5年,比每天學習5個小時堅持一周的效果要高出10倍。3 三天打魚兩天曬網也可以,每年能反覆50次的話,一年的學習時間會有150天。4 初次學習的知識要在1週後進行複習,過2週後進行第2...
每天30分鐘,實現自我增值
如果你問我,人們常常做事半途而廢是不是因為缺乏耐心。我認為,那是因為人們都太急功近利,習慣於眼前短暫的滿足。事實上,做任何事情都要付出時間。理查德 布蘭森不是一夜成為百萬富翁的 麥當娜也不是一夜成名的 碧鹹姆更不是一出生就是足球巨星。其實,想要自我增值很簡單。為什麼?因為大多數人只是在想而不行動。大...