0

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

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

我只需要实际的 cameraId 我已经尝试了一些没有运气的 grep fu 这是我运行的命令之一。

grep -o '\"cameraId\":\"*"' camlist.txt

但这只会返回

"cameraId":" "cameraId":" "cameraId":" "cameraId":" "cameraId":" "cameraId":" "cameraId":" "cameraId":"

我实际上需要报价之间的数据。

4

1 回答 1

2

如果我理解正确,您希望cameraId, 在您的示例中的属性是20MP S Middle Port 2

如果是这样,您可以这样做:

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

它从 aftercameraId":"到 next获取所有数据"

测试

$ 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
于 2013-07-11T12:57:07.707 回答