Shell指令碼之正規表示式概述和一些常用指令

2021-10-22 19:18:28 字數 1996 閱讀 4752

uniq命令

tr命令

正規表示式

以行為單位對檔案內容進行排序,也根據不同的資料型別來排序

sort

[選項] 引數

cat file |

sort 選項

-f忽略大小寫

-b忽略每行前面的空格

-m按照三字元月份進行排序

-n按照數字進行排序

-r反向排序

-u等同於uniq,表示相同的資料僅顯示一行

-t指定字段分隔符,預設使用[tab]鍵分隔

-k指定排序字段

-o 《輸出檔案》

將排序後的結果轉存至指定檔案

用於報告或者忽略檔案中連續的重複行,常與 sort 命令結合使用

uniq [選項] 引數

cat file | uniq 選項

-c進行計數,並刪除檔案中重複出現的行

-d僅顯示重複行

-u僅顯示出現一次的行

用來對來自標準輸入的字元進行替換、壓縮和刪除

tr [選項]

[引數]

-c保留字符集1的字元,其他的字元用(包括換行符\n)字符集2替換

-d刪除所有屬於字符集1的字元

-s將重複出現的字串壓縮為乙個字串;用字符集2 替換 字符集1

-t字符集2 替換 字符集1,不加選項同結果

通常用於判斷語句中,用來檢查某一字串是否滿足某一格式

正規表示式是由普通字元與元字元組成

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

元字元是指在正規表示式中具有特殊意義的專用字元,可以用來規定其前導字元(即位於元字元前面的字元)在目標物件中的出現模式

\轉義字元,用於取消特殊符號的含義,例:!、\n、$等

^匹配字串開始的位置,例:a、the、#、[a-z]

$匹配字串結束的位置,例:wordkatex parse error: expected group after '^' at position 2: 、^̲匹配空行

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

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

[list]

匹配list列表中的乙個字元,例:go[ola]d,[abc]、[a-z]、[a-z0-9]、[0-9]匹配任意一位數字

[^list]

匹配任意非list列表中的乙個字元,例:[0-9]、[a-z0-9]、[^a-z]匹配任意一位非小寫字母

匹配前面的子表示式n次,例:god、』[0-9]'匹配兩位數字

匹配前面的子表示式不少於n次,例:god、』[0-9]'匹配兩位及兩位以上數字

匹配前面的子表示式n到m次,例:god、』[0-9]'匹配兩位到三位數字

+匹配前面子表示式1次以上,例:go+d,將匹配至少乙個o,如god、good、goood等

?匹配前面子表示式0次或者1次,例:go?d,將匹配gd或god

()將括號中的字串作為乙個整體,例1:g(oo)+d,將匹配oo整體1次以上,如good、gooood等

使用者名稱@

^(

[a-za-z0-9_\-\.\+]

+)@

子網域名稱

(

[a-za-z0-9_\-\.]

+)

.頂級網域名稱(字串長度一般在2到5)

\.

([a-za-z]\

)$

egrep '^([a-za-z0-9_\-\.\+]+)@([a-za-z0-9_\-\.]+)\.([a-za-z])$' email.txt

awk '/^([a-za-z0-9_\-\.\+]+)@([a-za-z0-9_\-\.]+)\.([a-za-z])$/' email.txt

shell指令碼之正規表示式

一 基礎正規表示式例項 元字元總結 在linux系統中常見的檔案處理工具中grep和sed支援基礎正規表示式。grep命令選項 i 查詢時不區分大小寫 v 查詢時反向輸出,如查詢不包含某些字元的內容 n 表示查詢出結果後顯示行號 這三個選項可以結合使用,如 in 查詢時不區分大小寫並顯示行號。示例 ...

shell指令碼 正規表示式

一 正規表示式 正規表示式是用來描述字串排列和匹配模式的一種語法規則,是字串的模式分割 匹配 查詢和替換操作。正規表示式是包含匹配,操作字串,如grep,awd,sed,而萬用字元是完全匹配,如ls,find,cp 正則的與萬用字元的不同,如正規表示式aa 第二個a不起作用,意思是以a開頭的,而萬用...

shell 指令碼 正規表示式

字元類 character class 如上例的x和 y,它們在模式中表示乙個字元 但是取值範圍是 一類字 符中的任意乙個。數量限定符 quantifier 郵件位址的每一部分可以有乙個或多個x字元 ip位址的每一部 分 可以有1 3個y 字元位置限定符 anchor 部分,用普通字元 和 隔 開 ...