
.jar
スクリプトの変数に出力が格納されています。
Token is: XYZ123
Not found in page: 0
Not found in page: 1
Not found in page: 2
Found with ID : #14214733
#
では、ieの後にIDを抽出して別の変数に保存したいと思います14214733
。 bashでどうすればいいですか?
編集:以下を使用して解決するecho ${var##*#}
答え1
bashを使って正規表現でキャプチャ
output='Token is: XYZ123
Not found in page: 0
Not found in page: 1
Not found in page: 2
Found with ID : #14214733'
[[ $output =~ "Found with ID : #"([0-9]+) ]] && id=${BASH_REMATCH[1]}
echo $id # => 14214733
Bash正規表現ではリテラルテキスト部分が引用されますが、正規表現特殊コンテンツは引用されません。キャプチャされた部分はBASH_REMATCH配列に入ります。
答え2
1つの方法は次のとおりです。
sec_var=`cat ts.txt | grep -oE 'ID : #([0-9]+)' | cut -f2 -d '#'`
sec_var=`echo $first_var | grep -oE 'ID : #([0-9]+)' | cut -f2 -d '#'`
grep "-z"オプションも使用できます。
-z は行末の改行を抑制し、これをヌル文字に置き換えます。つまり、grepは行の終わりがどこにあるかを知っていますが、入力を1つの大きな行として扱います。