gpt4 book ai didi

linux - 仅在 2 个字符串之间提取文本,直到第一次出现结束字符串

转载 作者:太空狗 更新时间:2023-10-29 11:19:01 26 4
gpt4 key购买 nike

我正在尝试提取 device_uuid: 和立即数之间的字符串,

d

device_uuid:xxx,yyy,ttt
device_uuid:2,ppp,hhh

代码:

$ sed -e 's/device_uuid:\(.*\),/\1/' d
xxx,yyyttt
2,ppphhh

预计开工时间:

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:不必是第一列,就像所有的都可以是随机的但我需要选择那个变量对应的值直到直接分隔符,

-- Cut 也失败,因为它只能接受一个字符定界符。

-- $ 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

关于linux - 仅在 2 个字符串之间提取文本,直到第一次出现结束字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26185456/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com