BusyBoxで正規表現を使用して2つの文字列の間で文字列を抽出しようとしています。現地でできました。
extract_string=$(echo $content | grep -P '(?<=CURRENT_VERSION ")(.*)(?=")' -o)
残念ながら、このBusyBoxバージョンのgrep
コマンドはこの-P
オプションをサポートしていません。sed
、awk
およびを使用できますgrep
。
ひも:#define CURRENT_VERSION "1.0.0.2" some other random text
出力:1.0.0.2
私がこれを達成できる他の方法を知っている人はいますか?
オペレーティングシステム:カーネル 2.6.x
便利:ビジボックス1.2xで
ベストアンサー1
そしてsed
:
extract_string=$(
printf '%s\n' "$content" |
sed -n 's/.*CURRENT_VERSION "\([^"]*\).*/\1/p'
)
そしてawk
:
extract_string=$(
printf '%s\n' "$content" |
awk -F'"' '/CURRENT_VERSION/{ print $2 }'
)