我正试图提取device_uuid之间的string:和立即,
d
device_uuid:xxx,yyy,ttt device_uuid:2,ppp,hhh
码:
$ sed -e 's/device_uuid:\(.*\),/\1/' d xxx,yyyttt 2,ppphhh
预期o / p:
xxx 2
编辑1:
无法使用grep -oP,因为我在AIX上
使用awk失败:
d
device_uuid:xxx,yyy,ttt ptr,ttt device_uuid:2,ppp,hhh total_uuid:5,jkl,mno device_uuid:9 $ awk -F 'total_uuid:|,' '{print $2}' d yyy ttt ppp 5
预计在上述情况下o / p:
blank or device_uuid:xxx,yyy,ttt blank or ptr,ttt blank or device_uuid:2,ppp,hhh 5 blank or device_uuid:9
device_uuid:不必是第一列,就像明智的一切都可以是随机的,但我需要select该variables对应的值,直到立即分隔符,
– 剪切也失败,因为它只能接受一个字符分隔符。
– $ perl -l -ne '/device_uuid:([\w\-]*?)\,/g and print($1)' d
上面的Perl也失败了,因为,如果device_uuid不在一行中,那么该行被删除的o / p,但它应该显示为空白
谢谢。
使用sed
:
sed 's/^.*total_uuid:\([^,]*\).*$/\1/' file device_uuid:xxx,yyy,ttt ptr,ttt device_uuid:2,ppp,hhh 5 device_uuid:9
使用grep -oP
:
grep -oP 'device_uuid:\K[^,]+' file xxx 2
这不是很好,但有几个cut
应该做的工作:
$ echo "device_uuid:xxx,yyy,ttt" | cut -d":" -f2- | cut -d"," -f1 xxx