变量值提取



我知道这很简单,但不明白。 我有一个 shell 脚本,在脚本中有一个变量保存如下值 - 记录 1: [记录 bdfo_len 73 bdfo_key " 200000014" bdfo_param_no "000" 帕尔姆01 空帕尔 02 空帕尔姆03 空帕尔姆04 空帕尔姆05 空帕尔帕姆06 空帕尔姆07 空帕尔帕姆08 空帕尔帕姆09 空帕尔帕姆13 空帕尔帕姆16 空帕尔帕姆017 空帕尔帕姆18 空帕尔帕姆93 空帕尔 ll parm94 空 parm96 空 parm97 空 parm83 空标头 [记录 bdfo_run_date 41991 bdfo_file_id "GYFL3027" bdfo_centre_id "G" bdfo_sbi_file_ind "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY [记录 我需要从中提取bdfo_run_date,请问如何获得?

如果您使用支持正则表达式的 bash,您可以构造一个与您感兴趣的输入部分匹配的正则表达式:

bdfo_run_date [0-9]+

将您需要的部分放在括号中,并使用将匹配结果放入数组BASH_REMATCH=~ 运算符:

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