shell學習筆記一

2022-03-08 03:58:15 字數 1099 閱讀 7415

1、方括號表示式

在方括號表示式中,所有其他的mete字元(即元字元,特殊字元)都會失去其特殊含義。

eg:[*\.]匹配於字面上的星號、反斜槓和句點。

另外,要讓 ] 進入該集合,可以將它防盜列表的最前面。

1 >cat tmp 

2 ab]cdef

3 acdg

4 cd

5 a-g

6 >grep ] tmp

7 ab]cdef

如果有減號字元進入該集合,也應該放到最前端,如果兩者都有 ,則將右方括號放到第乙個字元,減號放到最後乙個字元。

2、後向引用

bre(在ere中並不存在)提供了一種叫後向引用的機制(backreferences),意思是「匹配於正規表示式匹配的先前部分」。

一共需要兩個步驟,第一步:將子表示式包圍在\(和\)裡面,單個模式裡可包括最多9個子表示式,且可以巢狀結構;

第二步:在同一模式之後使用\digit,digit指的是介於1至9的數字,意思是「匹配於先前括號內匹配成功的第digit個字元」。

3、交替

方括號表示式易於表示「匹配於此字元、其他字元,或者...」,但不能指定「匹配於這個序列、其他序列。或者...」,而要到達這個目的,可以使用交替(alternation)運算子,或稱為管道字元(|)。交替運算子在ere運算子優先順序是最低的。

4、停駐文字匹配

在ere裡,^ 和$永遠是meta字元,而在bre中,這兩個字元如果不是在字元首或尾,則表示字面值。在ere中,像ab^cd&gb仍然是有效的,只是無法匹配任何東西。

5、sed插入

1 $ cat tmp 

2 hello, welcome to linux'

s world!34

$ sed

's/hello/&, lyj/'

tmp

5hello, lyj, welcome to linux

's world!

6、sed的替換

在s命令以g結尾表示全域性性,意思是「替換文字取代正規表示式中每乙個匹配的」,如果沒有設定g,sed只會取代第乙個匹配的,還可以在結尾指定數字,指示第n個匹配出現才匹配。

shell學習筆記(一)

1.在變數的設定中,單引號與雙引號有什麼不同呢?單引號與雙引號的最大的不同在於雙引號仍然可以保有變數的內容,但單引號僅能是一般字元,而不會有特殊符號。2.在指令下達的過程中,quote 這個符號代表的意義為何?在一串指令中,在 之內的指令將會被先執行,而其執行出來的結果將作為外部的輸入資訊!例如 u...

shell學習筆記(一)

1.history 執行命令歷史紀錄 2.執行上一次命令3.n執行這條命令4.vim執行最近的乙個 vim 5.alias 可以簡單修改名字別名也就是把貓叫個咪 也可以比如 alias ls 6.ctrl z jobs,fg bg作業控制 7.mail s vayne 1219345363 qq.c...

shell學習筆記(一)

一.指令碼編寫和使用 1.sh指令碼宣告 bin sh 2.注釋寫法 該行都是 3.使指令碼可執行 chmod x filename 4.執行指令碼 在終端terminal中輸入.filename即可 二.變數的定義和使用 1.定義變數 變數名 屬性值 2.使用變數 變數名 大括號用來表示變數名的範...