在bash中提取两个引号之间的字符串

Vik*_*Vik 7 bash

我有像这样的示例字符串 Test "checkin_resumestorevisit - Online_V2.mt" Run

我想在 bash 中提取两个引号之间的文本。我尝试使用类似的命令

SUBSTRING=${echo $SUBSTRING| cut -d'"' -f 1 }
Run Code Online (Sandbox Code Playgroud)

但它失败了error: bad substitution

Art*_*les 17

为了提取引号之间的子字符串,您可以使用以下替代方法之一:

备选方案 1:

SUBSTRING=`echo "$SUBSTRING" | cut -d'"' -f 2`
Run Code Online (Sandbox Code Playgroud)

备选方案 2:

SUBSTRING=`echo "$SUBSTRING" | awk -F'"' '{print $2}'`
Run Code Online (Sandbox Code Playgroud)

备选方案 3:

set -f;IFS='"'; SUBSTRING=($SUBSTRING); SUBSTRING=${SUBSTRING[1]};set +f
Run Code Online (Sandbox Code Playgroud)


Cha*_*ffy 5

如果你想提取第一个"和最后一个之间的内容"

s='Test "checkin_resumestorevisit - Online_V2.mt" Run'
s=${s#*'"'}; s=${s%'"'*}
echo "$s"
Run Code Online (Sandbox Code Playgroud)