睡睡念
shell script的字串處理,原本以為只能用grep 跟 awk 走pipeline來用,
原來還能直接透過${} 來處理,shell script的水好深阿…
正文
來個例子,
有個tag 叫 dev_1.1.23 ,我只要後面的版號就好,該怎麼做。
本來做法
#!/bin/bash
set -x
abc="dev_1.1.23"
echo $abc|grep -o '\d.\d.\d.'
利用 grep 取值,並只顯示符合正則的字串, 所以要用 -o
1.1.23
如果改用${}的文字非貪婪左刪除
#!/bin/bash
set -x
abc="dev_1.1.23"
echo ${abc#*_}
1.1.23
除了左刪除,也能做到右刪除
# 小比對左
## 大比對左
% 小比對右
%% 大比對右
* 用來比對然後刪除
ps.
set -x 是屬於xtrace的應用,用來除錯的。
也可以在執行的時候,加上 bash -x curl.sh ,
這樣使用
詳細參考Shell script前言
0 意見:
張貼留言