2016-12-13 3 views
2

おそらく私の質問は簡単ですが、これを行う方法を理解できません。動的長さの文字列のBashカットエンド

bashスクリプトでは、変数sysObjectID($ device_manufacturer)が格納されています。私はポイントの後になり1.3.6.1.4.1と数字で始まり、ポイントによって制限され、この値から切り取り、別の変数値に置く必要がある

1.3.6.1.4.1.9.1.2066 
1.3.6.1.4.1.2272.9 
1.3.6.1.4.1.2272.7 
1.3.6.1.4.1.45.3.30.1 
1.3.6.1.4.1.930.1.1 
1.3.6.1.4.1.930.1.4 
1.3.6.1.4.1.930.1.5 

:この変数の値は ようにすることができます。たとえば:

1.3.6.1.4.1.9 
1.3.6.1.4.1.2272 
1.3.6.1.4.1.45 

私はカットを使用することを試みたが、それは

を1.3.6.1.4.1後に数字だけを返す正しい値を返すようにコマンドを書き換える方法私を助けてください:

unknown_device_manufacturer=$(echo $device_manufacturer0 | cut -d'.' -f7) 

答えて

3

あなたが接近している:

unknown_device_manufacturer=$(echo $device_manufacturer0 | cut -d'.' -f1-7) 

または

最初からM番目までN番目からM番目に

NM(付属)バイト、文字またはフィールド

-M(付属)バイト、:cut manページから

unknown_device_manufacturer=$(echo $device_manufacturer0 | cut -d'.' -f-7) 

文字またはフィールド

+0

ありがとうございます!これは私の問題を解決しました! –