问题描述
root@machine:path# someapp report | grep Lost
Lost Workers: 0
我怎样才能只对末尾的数字进行 grep?
谢谢
解决方法
像这样:
someapp report | grep -i lost | tr -s ' ' | cut -d' ' -f4
运行应用程序,通过 tr 管道 STDOUT 删除空格,使用空格剪切新字符串,然后选择第 4 个字段
测试:
echo " Lost Workers: 0" | tr -s ' ' | cut -d' ' -f4
,
结合使用 sed 进行搜索和解析:
echo ' Lost Workers: 0' | sed -n '/Lost/ s/.*[[:blank:]]//p'
,
看起来像 grep | cut ...
或 grep | tr | cut
或类似的管道几乎总是最好使用 awk
:
$ printf 'foo\nLost Workers: 0\nbar\n' | awk '/Lost/{print $NF}'
0