2017-06-29 10 views
-2

私はそれが簡単ですが、それを取得していないことを知っています。 私はシェルスクリプトを持っていて、スクリプトの中に以下のような値を保持しています - レコード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が答えを受け入れることでご了承ください、あなたを助けている場合答えの横にある右の記号をつかむ。また、同じ問題を解決するために複数のアプローチを提供している他の人たちにupvoteすることもできます。 –

答えて

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