2017-06-29 90 views
-2

我知道它很簡單,但沒有得到它。 我有一個shell腳本,在腳本里面有一個變量,其值如下 - 記錄1:[記錄bdfo_len 73 bdfo_key「200000014」bdfo_param_no「000」parm01 NULL parm02 NULL parm03 NULL parm04 NULL parm05 NULL parm06 NULL parm07 NULL parm08 NULL parm09 NULL parm13 NULL parm16 NULL parm017 NULL parm18 NULL parm93 NULL parm94 NULL parm96 NULL parm97 NULL parm83 NULL頁眉[記錄bdfo_run_date 41991 bdfo_file_id 「GYFL3027」 bdfo_centre_id 「G」 bdfo_sbi_file_ind 「YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY」]拖車NULL數據NULL]記錄2:[記錄 我需要從中提取bdfo_run_date,請問如何獲取?變量值提取

+0

嗨,如果有下列答案幫助了你,那麼請通過接受由TI應答確認在答案旁邊貼上正確的標記。您也可以爲其他提供多種方法來解決相同問題的人提供幫助。 –

回答

0

如果您使用的是帶有正則表達式的支持bash中,您可以構造您感興趣的輸入部分匹配的正則表達式:

bdfo_run_date [0-9]+ 

把你在括號中需要的部分,並使用=~操作這使該比賽結果數組BASH_REMATCH在:

[[ $INPUT =~ bdfo_run_date\ ([0-9]+) ]] && echo "${BASH_REMATCH[1]}" 
0
echo "$recordVariable" |grep -oP 'bdfo_run_date\s+\K[^ ]+' 
41991