如何使用shell脚本筛选字符串

如何使用shell脚本筛选字符串,shell,Shell,我有一个名为demo.sh的shell脚本,它运行命令并将输出存储在变量中 以下是脚本: $#!/bin/sh a=`asterisk -rx "core show hint 101"` echo "${a}" 输出为: 101@hints : SIP/101 State:Unavailable Presence:not_set Watchers 0 我只需要获取State部分,在这种情况下,不可用。这种状态不是固定的,

我有一个名为demo.sh的shell脚本,它运行命令并将输出存储在变量中

以下是脚本:

$#!/bin/sh
a=`asterisk -rx "core show hint 101"`
echo "${a}"
输出为:

101@hints           : SIP/101               State:Unavailable    Presence:not_set         Watchers  0
我只需要获取State部分,在这种情况下,不可用。这种状态不是固定的,而是变化的。我需要得到状态:之后但存在:


我该怎么做?

这能回答您的问题吗?编写一个简单的正则表达式来提取State和Presence之间的字符串部分。使用
sed
a=${a#*State:};a=${a%%状态:};echo“$a”感谢您的评论。我用@jhnc提供的解决方案解决了这个问题。谢谢大家!