如何在 zshell 中拆分字符串并捕获子字符串到行尾?
How can I split a string in zshell and capture a substring-to-end-of-line?
我有一个字符串,我想将其拆分为一个子字符串,return 将结果的第二个子集拆分为一个字符串。我如何在 zshell 中执行此操作?
我可以在关键字和 return 子字符串的下一个单词处拆分,如下所示:
line="quick brown fox jumps over sleepy dog"
splits=${(MS)line##over*}
nextword=$splits[(w)1] #<-- returns "sleepy"
如何在拆分后得到整个子字符串,例如 "sleepy dog" 或 "sleepy brown dog"(如果字符串包含更多单词)?本质上,我在 zshell 中寻找的是 awk
等价于:
echo "quick brown fox jumps over sleepy dog" | awk -F'over' '{print };'
您可以在 splits
索引结束时使用负范围偏移(在本例中为 -1
)。要从 sleepy
一直到最后一个元素,您可以只使用 $splits[(w)1,-1]
.
略有不同的方法:
[[ $line =~ "over (.*)" ]]
next_word=$match[1] # or just $match
我有一个字符串,我想将其拆分为一个子字符串,return 将结果的第二个子集拆分为一个字符串。我如何在 zshell 中执行此操作?
我可以在关键字和 return 子字符串的下一个单词处拆分,如下所示:
line="quick brown fox jumps over sleepy dog"
splits=${(MS)line##over*}
nextword=$splits[(w)1] #<-- returns "sleepy"
如何在拆分后得到整个子字符串,例如 "sleepy dog" 或 "sleepy brown dog"(如果字符串包含更多单词)?本质上,我在 zshell 中寻找的是 awk
等价于:
echo "quick brown fox jumps over sleepy dog" | awk -F'over' '{print };'
您可以在 splits
索引结束时使用负范围偏移(在本例中为 -1
)。要从 sleepy
一直到最后一个元素,您可以只使用 $splits[(w)1,-1]
.
略有不同的方法:
[[ $line =~ "over (.*)" ]]
next_word=$match[1] # or just $match