-1

我有一个看起来像这样的输出

root@machine:path# someapp report | grep Lost
    Lost Workers: 0

我怎样才能只grep最后的数字?

谢谢

4

3 回答 3

0

看起来像grep | cut ...grep | tr | cut相似的管道几乎总是最好使用awk

$ printf 'foo\nLost Workers: 0\nbar\n' | awk '/Lost/{print $NF}'
0
于 2021-07-20T13:06:25.290 回答
0

像这样:

someapp report | grep -i lost | tr -s ' ' | cut -d' ' -f4

运行应用程序,通过 tr 管道 STDOUT 以删除空格运行,使用空格剪切新字符串,然后选择第 4 个字段

测试:

echo "    Lost Workers: 0" | tr -s ' ' | cut -d' ' -f4
于 2021-07-20T11:44:32.257 回答
0

将搜索和解析与 sed 结合起来:

echo '    Lost Workers: 0' | sed -n '/Lost/ s/.*[[:blank:]]//p'
于 2021-07-20T12:00:48.027 回答