Bash 从具有不同分隔符的行中剪切文本
Bash Cut text from line with different delimiters
我有一个变量,其值如下:
@capability_ids type="list">[LOADBALANCER]</capability_ids>@
并且需要从这个字符串中提取出设备类型(LOADBALANCER)。
我尝试过使用 cut,但不知道如何使用不同的分隔符编写 cut 命令。
DeviceType=$( echo $DeviceTypeDirty | cut -d'[' -f1)
enywone 可以帮我在 bash 上找到正确的解决方案吗?
使用 awk
和正则表达式:awk -F '[\[\]]' '{print }'
$ echo '@capability_ids type="list">[L3SWITCH]/capability_ids>@'|awk -F '[\[\]]' '{print }'
$ L3SWITCH
$ DeviceType=$( echo "$DeviceTypeDirty" | awk -F '[\[\]]' '{print }')
我尝试并提取了 "LOADBALANCER"
Administrators-MacBook-Pro:~$ echo "\"list\">[LOADBALANCER]
</capability_ids>@"|awk -F '[][]' '{print }'
LOADBALANCER
Administrators-MacBook-Pro:~$
希望对您有所帮助!
使用cut
:
DeviceTypeDirty="@capability_ids type="list">[LOADBALANCER]</capability_ids>@"
DeviceType="$(echo "$DeviceTypeDirty" | cut -d'[' -f2 | cut -d']' -f1)"
输出:
echo "$DeviceType"
LOADBALANCER
我有一个变量,其值如下:
@capability_ids type="list">[LOADBALANCER]</capability_ids>@
并且需要从这个字符串中提取出设备类型(LOADBALANCER)。
我尝试过使用 cut,但不知道如何使用不同的分隔符编写 cut 命令。
DeviceType=$( echo $DeviceTypeDirty | cut -d'[' -f1)
enywone 可以帮我在 bash 上找到正确的解决方案吗?
使用 awk
和正则表达式:awk -F '[\[\]]' '{print }'
$ echo '@capability_ids type="list">[L3SWITCH]/capability_ids>@'|awk -F '[\[\]]' '{print }'
$ L3SWITCH
$ DeviceType=$( echo "$DeviceTypeDirty" | awk -F '[\[\]]' '{print }')
我尝试并提取了 "LOADBALANCER"
Administrators-MacBook-Pro:~$ echo "\"list\">[LOADBALANCER]
</capability_ids>@"|awk -F '[][]' '{print }'
LOADBALANCER
Administrators-MacBook-Pro:~$
希望对您有所帮助!
使用cut
:
DeviceTypeDirty="@capability_ids type="list">[LOADBALANCER]</capability_ids>@"
DeviceType="$(echo "$DeviceTypeDirty" | cut -d'[' -f2 | cut -d']' -f1)"
输出:
echo "$DeviceType"
LOADBALANCER