Bash 将grep命令shell脚本的结果存储到var中

Bash 将grep命令shell脚本的结果存储到var中,bash,shell,sh,Bash,Shell,Sh,我正在创建一个shell脚本,从一个特定的行中提取一个数字,其中会出现一个特定的字符串(isDone),因此我使用grep,我找到该行并可以回显它,但我无法将grep输出存储到var。 $text var获得了inumerous标记,其中一个具有字符串“isDone”,这就是我想要的行: 代码: 输出: < s:key name="isDone">1</s:key > 但这会输出所有文件,我做错了什么 您可以提供示例输入文件吗?您至少缺少store=“$(“$text”

我正在创建一个shell脚本,从一个特定的行中提取一个数字,其中会出现一个特定的字符串(isDone),因此我使用grep,我找到该行并可以回显它,但我无法将grep输出存储到var。 $text var获得了inumerous标记,其中一个具有字符串“isDone”,这就是我想要的行:

代码:

输出:

< s:key name="isDone">1</s:key >

但这会输出所有文件,我做错了什么

您可以提供示例输入文件吗?您至少缺少
store=“$(“$text”| grep“$short_str”)”
中的
echo
,但可能还有另一个问题,因为这个错误通常不会导致打印整个文件。我还很困惑,当你对包含isDone的行进行grepping时,如何在第一个代码中获得“1”的输出,我希望输出包含isDone确保仍然正确定义了
$short\u str
,输出整个文件可能源于实际过滤器的
grep'
如果数字只出现在您的行中,您可以使用
store=$(grep-o'[0-9]*'filename.txt)
获取它。如果您不想使用中间文件
filename.txt
,只需这样做:
store=$(grep“$short\u str”好的,我知道了!store=$(grep“$short\u str”
< s:key name="isDone">1</s:key >
store="$("$text" | grep "$short_str")"
echo "$store"