Bash拆分相同的字符

时间:2017-02-28 09:15:45

标签: bash

如何拆分包含更多相同字符的字符串。

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

我不知道怎么做。感谢。

2 个答案:

答案 0 :(得分:1)

您可以使用cut

# 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-

答案 1 :(得分:0)

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

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

第一行中的单引号可防止任何特殊的bash符号按字面解释。变量$NAME接受命令分组的值,由$()表示。 $INPUT将回显到cut命令,其中分隔符=-d标志指定,并指定第一个字段(-f标志)

接下来,为变量$INFO分配命令分组的值,其中表示直到结尾的第二个字段。在此部分中的两个之后的短划线:-f 2-告诉bash在第一个=符号结束后选择所有内容。

第一个等号不会在最后的$INFO变量中。