对于有 UNIX 经验的人来说,这可能是一个非常简单的问题,但是我试图从字符串中提取一个数字并不断得到错误的结果。

这是字符串:

8962 ? 00:01:09 java

这是我想要的输出
8962

但出于某种原因,我一直在取回完全相同的字符串。这是我试过的
pid=$(echo $str | sed "s/[^[0-9]{4}]//g")

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

最佳答案

给猫剥皮的方法不止一种:

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

cut 根据分隔符或仅字节范围在不同字段中剪切一行,并且在这些任务中通常很有用。

awk 是一种较旧的编程语言,对于一次一行地做某事特别有用。

关于string - UNIX BASH : extracting number from string,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3569754/

10-09 00:56