也许我的问题很简单,但我无法弄清楚如何做到这一点。
在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 )
答案 0 :(得分:3)
你很近:
unknown_device_manufacturer=$( echo $device_manufacturer0 | cut -d'.' -f1-7 )
或
unknown_device_manufacturer=$( echo $device_manufacturer0 | cut -d'.' -f-7 )
来自cut
手册页:
N-M从第N个到第M个(包括)字节,字符或字段
-M从第一个到第M个(包括)字节,字符或字段