从命令行上的字符串输出中获取数字

从命令行上的字符串输出中获取数字

我如何从命令行输出中获取数字。

例如,我有一个程序,运行时输出如下字符串

submitted batch with job number 12345

我只想抓取数字12345并将其传送到另一个程序。

答案1

从您提供的字符串中获取数字的最简单形式如下。

string="submitted batch with job number 12345"
echo $string | grep -o '[0-9]\+'

如果程序的字符串或输出确实包含第二个数字组,则此操作将失败,例如

string="submitted 1 batch with job number 12345"

在这种情况下,您可以使用sed例如搜索字符串数字并且仅匹配该事件之后的数字。

echo $string | sed -n 's/^.*number\ \([0-9]\+\)/\1/p'

相关内容