我在这里有一个文本字符串:
lorem ipsum dolor:坐在amet
我想将其分为2个变量:col1和col2基于字符串“ dolor:”定界符。
col1被分配了第一个字符串:
lorem ipsum dolor:
并且col2分配了第二个字符串:
坐amet
我如何在终端上做到这一点?
答案 0 :(得分:3)
Bash通过参数扩展使事情变得简单,该扩展允许从字符串的开头(开头)或后面(结尾)进行修整。例如:
s="lorem ipsum dolor: sit amet" ## full string
b="${s##*dolor: }" ## remove everything from front through "dolor: "
a="${s% $b}" ## remove everything saved in $b from back + space
示例:
s="lorem ipsum dolor: sit amet"
b="${s##*dolor: }"
a="${s% $b}"
printf "a: %s\nb: %s\n" "$a" "$b"
a: lorem ipsum dolor:
b: sit amet
其中$a
和$b
包含所需的字符串。可以在man bash
中找到参数扩展,但从前或后修剪的参数扩展总结为:
${var#pattern} Strip shortest match of pattern from front of $var
${var##pattern} Strip longest match of pattern from front of $var
${var%pattern} Strip shortest match of pattern from back of $var
${var%%pattern} Strip longest match of pattern from back of $var
(注意:模式可以包含普通的通配符,例如'*'
)
如果您还有其他问题,请告诉我。