iT邦幫忙

DAY 2
3

我與BASH shell scripting的每一天系列 第 2

我與BASH的每一天 - [2]直取字串變數中的特定欄位值

  • 分享至 

  • xImage
  •  

昨天示範了利用bc命令的除法技巧取取得數字字串中的特定欄位,今天來示範不同的做法。
昨天示範了利用bc命令的除法技巧取取得數字字串中的特定欄位,今天來示範不同的做法。

利用算數的技巧來將字串切成特定欄位有一個先天的限制,就是這只適用於數字字串。當面對到的不是數字字串或是bc命令不存在時(bc命令不是BASH的內部指令),這個方法就沒轍了。

其實BASH本身對變數的內容可以當成陣列(array)般來處理,也就是說我們可以直接對字串切出我們需要的欄位,請看以下這個例子:

#VERSION 就是source code的版本號碼
MAJOR-VERSION=${VERSION:0:1}
MINOR-VERSION=${VERSION:1:2}

直接從變數中切割字串欄位的方法是這樣的:
我們可以把字串當成是陣列(array)來看,第一個位置從0開始。要取得子字串(sub-string)的內容,就只要透過冒號(:)來定義起始位置與結束位置。另外針對變數進行運作需要加上${...}符號,也就是這樣的格式:

${變數名稱:字串的第一個位置:字串的最後一個位置}

所以我們的主版本號就是版本序號的第一個字(0:1);而附版本號就是第二個字到第三個字(1:2)。

[本系列文章]

我與BASH的每一天 - [1]利用bc命令來取得數字字串中的特定欄位值
我與BASH的每一天 - [2]直取字串變數中的特定欄位值


上一篇
我與BASH的每一天 - [1]利用bc命令來取得數字字串中的特定欄位值
下一篇
我與BASH的每一天 - [3] 利用awk來擷取特定欄位
系列文
我與BASH shell scripting的每一天31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

我要留言

立即登入留言