node --version
(具体的に)、およびの形式でテキストを出力するプログラムがあり、これはすべて数値です。 LinuxとOS Xで動作する移植可能な方法でこの文字列からメジャーバージョンを抽出したいと思います。私は現在使用していますv<major>.<minor>.<patch>
<major>
<minor>
<patch>
grep -oP "(?<=v)(\d+)(?=.\d+.\d+)"
しかし、これは別のフラグを使用しているため、OS Xでは機能しないようです。両方のシステムでこれを行う方法はありますか?
答え1
Bashでは、次のものを使用できます。
IFS='v.' read -r throwaway major minor patch < <(node --version)
変数はthrowaway
初期化前に空白になりますv
。テストに使用できるOS Xシステムはありませんが、これは良いbashスクリプトでなければなりません。
答え2
mikeservのコメントに触発され、次のコマンドを使用してこれを行います。
node --version | cut -d. -f1 | cut -c2-
区切り文字のあるカットを使用して文字列のみを抽出し.
ます。v<major>
次にcutを再度使用して、2番目の文字から始まるすべての文字を取得しますv
。
これはcoreutils(除外node
)のみを使用するため、移植性を最大限に高めます。