字符串的條件判定
-
1.字符串判定 一定要用雙[[ ]]
-
2.字符串判定=~默認支持擴展正則表達式,這里注意雙引號的使用
-
僅僅做是否包含時,有無雙引號無區別。
-
但是利用其他擴展表達式時 雙引號一定要去掉
-
錨定示例
-
多條件判定時-o -a使用時,不能使用雙中括號
-
空格有無的差別
!的使用細節
!到目前為止 有兩種意義 條件判定取反 歷史命令的調用 兩者的使用卻別!后面是否接空格
find 命令中的-exec command {} \; 尾部的空格一定要注意,一個都不能少不能少
正則表達式的元字符 在不同命令中的轉義與非轉義
sed 命令中模式的查找與替換
-
sed 命令默認支持基本正則表達式
-
搜索時需要轉義的字符$ ! [ . \ ‘ “
$ 的 示例:^ 的示例
\的示例
‘ 的示例 : 注意 這里轉義單引號也不成功
-
“ 的示例
-
其中 ! 在命令使用 雙引號時需要轉義,單引號時則無需轉義
-
替換時需要轉義的字符& \ ‘ “
源文件中的內容
\ 的示例;
注意 : 在命令使用不同引號時的轉義方式不一樣
’ ” 引號的示例:
注意: 這里和搜索時一樣 單引號無法用轉義來實現,雙引號可以
-
-
vim 命令行搜索替換默認支持基本正則表達式
搜索時需要轉義的字符$ [ \ ~ .
原文件內容:
-
-
如果$不轉義,被當成變量了
不加轉義符的結果:
加轉義符的結果:
[ 的示例 :
不加 轉義符的結果: 顯示 pattern 不存在, 此時 [被當成了命令。
加 轉義符的效果 :
結果 a 后面的 [ 被成功替換成ok
~ 的 使用 :
原文中 ~ 的位置 :
不使用轉義符時:~ 被當成了某種引用
所以 只能使用 轉義符來表達~本來的意義
結果:
-
替換式需要轉義的字符& ~ \
& 示例:
這里以替換 t 來演示:
-
不加轉義符時,& 是完全引用搜索內容的意思,所以不用轉義符內容無所變化
-
加上轉義符 來看看效果 :
t 順利的被替換成了?。?br />
~ 的示例:
不加 轉義符時 :
t 被替換成了 & ,原因時~ 直接引用了上次替換的結果,所以這里t 就直接被替換成了 &
來看看加轉義符的效果 :
-
\ 的示例:
不加轉義符時,內容直接被替換成了\ 后面的內容。 -
再看看正確的寫法:
t 成功被替換成了 \
最后,默認支持擴展正則表達式的 :條件判斷時,=~
注意單引號與雙引號使用時$的區別
-
雙引號 或者不使用引號時 $ 則表示引用變量的意思,這里引號的不同和echo 命令一樣, 單引號時完全引用, 雙引號是 智能型引用。
如果有錯誤之處請在評論處指正,謝謝
原創文章,作者:zhoulz,如若轉載,請注明出處:http://www.www58058.com/71338