我有像这样的示例字符串
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)
如果你想提取第一个"和最后一个之间的内容":
s='Test "checkin_resumestorevisit - Online_V2.mt" Run'
s=${s#*'"'}; s=${s%'"'*}
echo "$s"
Run Code Online (Sandbox Code Playgroud)