iT邦幫忙

DAY 5
3

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

我與BASH的每一天 - [5] 利用awk來擷取特定欄位-3

  • 分享至 

  • xImage
  •  

前兩天提到說,BASH對於字串變數可以運用array的方式來取得特定位置與長度的子字串,只要你指定字串的起始位置與長度即可。其實awk命令也有類似的方法,但是它們對於起始位置的定義不一樣,使用時要特別注意才行。
前兩天提到說,BASH對於字串變數可以運用array的方式來取得特定位置與長度的子字串,只要你指定字串的起始位置與長度即可。其實awk命令也有類似的方法,但是它們對於起始位置的定義不一樣,使用時要特別注意才行。

在BASH中,定義第一個字元的位置為0;而在awk中,第一個字元的位置為1。而且要透過awk來產生sub-string時必須使用substr這個函數來達成。請看這個例子:

# 想要取得字串中的'ABCD'
String=123ABCD456

# BASH的作法:
echo ${String:3:4}

# awk的做法:
echo | awk ‘{print substr("'"${String}”’”,4,4)}’

substr函數的定義是: substr(string,position,length)

[本系列文章]

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


上一篇
我與BASH的每一天 - [4] 利用awk來擷取特定欄位-2
下一篇
我與BASH的每一天 - [6] 利用cut來擷取特定欄位
系列文
我與BASH shell scripting的每一天31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言