字符串中间的Grep通配符

字符串中间的Grep通配符,grep,wildcard,Grep,Wildcard,好的,我遇到的问题是,我有一个文件,其中包含许多行,看起来像这样 {“cameraEndpoint”:“your.url.here”,“cameraId”:“20MP S中间端口2”,“warehouseId”:“random”} 这是我唯一需要的是实际的摄像头,我尝试了一些grep fu,但运气不好,这是我运行的命令之一 grep -o '\"cameraId\":\"*"' camlist.txt 但这只会带来回报 “cameraId”: “cameraId”: “cameraId”: “

好的,我遇到的问题是,我有一个文件,其中包含许多行,看起来像这样

{“cameraEndpoint”:“your.url.here”,“cameraId”:“20MP S中间端口2”,“warehouseId”:“random”}

这是我唯一需要的是实际的摄像头,我尝试了一些grep fu,但运气不好,这是我运行的命令之一

grep -o '\"cameraId\":\"*"' camlist.txt
但这只会带来回报

“cameraId”: “cameraId”: “cameraId”: “cameraId”: “cameraId”: “cameraId”: “cameraId”: “cameraId”:


我实际需要引号之间的数据。

如果我理解正确,您需要
cameraId
的属性,在您的示例中是
20MP S中间端口2

如果是,您可以这样做:

$ grep -Po '(?<=cameraId":")[^"]*' file
20MP S Middle Port 2

+1代表经典解决方案。另外,为了让你的代表看起来更漂亮
9995
:DOh,谢谢@Kent,事实上这是我从你那里学到的一个技巧:)在我进入10K俱乐部的下一次投票中,uhms。
$ cat file
{"cameraEndpoint":"your.url.here","cameraId":"20MP S Middle Port 2","warehouseId":"random"}
{"cameraEndpoint":"your.url.here","cameraId":"Hello S Middle Port 2","warehouseId":"random"}
{"cameraEndpoint":"your.url.here","camaId":"Hello S Middle Port 2","warehouseId":"random"}
$ grep -Po '(?<=cameraId":")[^"]*' file
20MP S Middle Port 2
Hello S Middle Port 2