2016-12-13 7 views
2

Возможно, мой вопрос прост, но я не могу понять, как это сделать.Bash cut конец строки с динамической длиной

В сценарии bash у меня есть переменная с сохраненным snmp SysObjectID ($ device_manufacturer). значения этого переменный может быть как:

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 и цифрами, который идет после точки и ограничена точкой. Например:

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) 

или

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

cut От человека странице:

Н.М. с ного до М (включительно) байта, символа или поля

-M от первого до ного (включительно) байта, характер или поле

+0

С уважением, Это решило мою проблему! –