用相同的字符bash拆分单词



如何拆分字符串,其中包含更多相同字符。

例如name=John:adress=London。我需要结果name作为变量,而John:adress=London作为值。

我不知道该怎么做。谢谢。

您可以使用切割。

# print first field 
echo "name=John:@(ADDRESS=(LONDON=(STREET=XY)))" | cut -d = -f 1
# print remaining fields 
echo "name=John:@(ADDRESS=(LONDON=(STREET=XY)))" | cut -d = -f 2-

您可以使用剪切和命令分组

INPUT='name=@(ADDRESS=(LONDON=(STREET=XY)))'
NAME=$(echo "$STR" | cut -d '=' -f 1)
INFO=$(echo "$STR" | cut -d '=' -f 2-)

第一行中的单个引号阻止了任何特殊的bash符号的字面解释。变量$NAME接受命令分组的值,该值由$()表示。$INPUTcut命令相呼应,其中定界符=-d标志指定,并指定了第一个字段(-f FLAG)。

接下来,分配了变量$INFO的命令分组的值,其中第二个字段直到结束为末端。在这一部分中,两者之后的破折号:-f 2-告诉BASH在第一个=登录到末尾之后选择所有内容。

第一个平等符号将不在末端的$INFO变量中。

最新更新