我如何从命令行输出中获取数字。
例如,我有一个程序,运行时输出如下字符串
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'