UNIX BASH:从字符串中提取数字

Alb*_*ish 3 unix string bash

对于有经验的UNIX用户来说,这可能是一个非常简单的问题,但是我正在尝试从字符串中提取数字并继续得到错误的结果.

这是字符串:

8962 ? 00:01:09 java
Run Code Online (Sandbox Code Playgroud)

这是我想要的输出

8962
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,我一直收到相同的字符串.这就是我尝试过的

pid=$(echo $str | sed "s/[^[0-9]{4}]//g")
Run Code Online (Sandbox Code Playgroud)

如果有人可以帮助我,将不胜感激.

Pet*_*ans 11

皮肤猫的方法不止一种:

pti@pti-laptop:~$ echo 8962 ? 00:01:09 java | cut -d' ' -f1
8962
pti@pti-laptop:~$ echo 8962 ? 00:01:09 java | awk '{print $1}'
8962
Run Code Online (Sandbox Code Playgroud)

cut基于分隔符或字节范围在不同字段中切割一条线,并且在这些任务中通常很有用.

awk是一种较旧的编程语言,特别适用于一次一行.