字符串中间的Grep通配符
好的,我遇到的问题是,我有一个文件,其中包含许多行,看起来像这样 {“cameraEndpoint”:“your.url.here”,“cameraId”:“20MP S中间端口2”,“warehouseId”:“random”} 这是我唯一需要的是实际的摄像头,我尝试了一些grep fu,但运气不好,这是我运行的命令之一字符串中间的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”: “
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