linux sed []命令的作用

hurp_oracle發表於2015-01-24
sed [] 表求在括號內的任何一個字元
例:
user='abcdefg'
echo $user |sed -e 's/[ag]//g'  ---作用是去掉存在a或g的字元
[timesten@localhost ~]$ echo $user |sed -e 's/[ag]//g'
bcdef

例2:
[timesten@localhost ~]$ user='abagaga'
[timesten@localhost ~]$ echo $user |sed -e 's/[ag]//g'
b

sed -e 's/]*>//g'  這個表示匹配一個“<......>”這樣的式子,並且兩個尖括號之間不含有另一個“>”,這其實是一種手段來使本來是用greedy方式匹配的正規表示式變成lazy方式來匹配。
舉例:
123456 789如果選擇's/<.>//' 那麼得到的是123789,而不是123456789,這裡匹配的原則是greedy,匹配到456
如果選擇's/]*>//g' 那麼得到的是123456789,這裡匹配的原則是lazy,匹配到的是,因為後面有g所以會替換兩個,如果沒有g,那麼會得到123456789


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29446986/viewspace-1413615/,如需轉載,請註明出處,否則將追究法律責任。

相關文章