我有单行输出如下
"ng-num_sta" : 5 ,
"ng-num_sta" : 10 ,
"ng-num_sta" : 15 ,
"ng-num_sta" : 3 ,
xyz value : 1 , blah blah, single line
我想只获取字符串ng-num_sta
的值
示例:
5
10
15
3
我尝试了以下功能,但其打印模式仅匹配,
cat myfile.txt | grep -Po '(ng-user-num_sta.)[^\s]*'
输出:
ng-user-num_sta"
ng-user-num_sta"
ng-user-num_sta"
ng-user-num_sta"
ng-user-num_sta"
ng-user-num_sta"
ng-user-num_sta"
ng-user-num_sta"
答案 0 :(得分:1)
您的regEx
匹配不正确,使用GNU grep
-P
,PCRE
模式启用,而\K
忽略模式匹配到该点
grep -oP '\"ng-num_sta\" : \K[^ ]*' file
5
10
15
3
检查regEx
here。
答案 1 :(得分:0)
这样好吗?
awk '$1 ~ /ng-num_sta/{print $3}' file
5
10
15
3