Jq - 在 windows powershell 上 运行 时出现语法错误,但在 bash 终端上却成功
Jq - Syntax error when ran on windows powershell however on bash terminal it was successful
我试图使用 JQ 解析 OCI JSON 输出并在 Windows powershell 中出现语法错误,但是相同的命令在 Bash 终端中运行良好。
如果我遗漏了什么,请告诉我。
PS C:\myfiles> oci compute instance list-vnics --all --compartment-id xxxxxx --profile myprof |C:\myfiles\jq-win64.exe ".data[]|select(."hostname-label"=="test1" )"
jq: error: syntax error, unexpected $end, expecting ';' or ')' (Windows cmd shell quoting issues?) at <top-level>, line 1: .data[]|select(. jq: 1 compile error PS C:myfiles>
尝试使用单引号中的 JQ 语句,出现以下语法错误:
PS C:\myfiles> oci compute instance list-vnics --all --compartment-id xxxxx --profile myprof |C:\myfiles\jq-win64.exe '.data[]|select(."hostname-label"=="test1" )'
jq: error: syntax error, unexpected ==, expecting '$' (Windows cmd shell quoting issues?) at <top-level>, line 1: .data[]|select(.hostname-label==test1 ) jq: 1 compile error PS C:\MYDATA\myfiles>
我在 jplay.org 中尝试了同样的方法,并且在那里也工作正常。请在 Windows.
中告诉我如何解决此问题
谢谢
单引号内的双引号需要转义:
PS C:\myfiles> oci compute instance list-vnics --all --compartment-id xxxxx --profile myprof |C:\myfiles\jq-win64.exe '.data[]|select(.\"hostname-label\"==\"test1\")'
如果你有变量,将其作为参数传递:
PS C:\myfiles> oci compute instance list-vnics --all --compartment-id xxxxx --profile myprof |C:\myfiles\jq-win64.exe --arg host_name $host_name '.data[]|select(.\"hostname-label\"==$host_name)'
我试图使用 JQ 解析 OCI JSON 输出并在 Windows powershell 中出现语法错误,但是相同的命令在 Bash 终端中运行良好。 如果我遗漏了什么,请告诉我。
PS C:\myfiles> oci compute instance list-vnics --all --compartment-id xxxxxx --profile myprof |C:\myfiles\jq-win64.exe ".data[]|select(."hostname-label"=="test1" )"
jq: error: syntax error, unexpected $end, expecting ';' or ')' (Windows cmd shell quoting issues?) at <top-level>, line 1: .data[]|select(. jq: 1 compile error PS C:myfiles>
尝试使用单引号中的 JQ 语句,出现以下语法错误:
PS C:\myfiles> oci compute instance list-vnics --all --compartment-id xxxxx --profile myprof |C:\myfiles\jq-win64.exe '.data[]|select(."hostname-label"=="test1" )'
jq: error: syntax error, unexpected ==, expecting '$' (Windows cmd shell quoting issues?) at <top-level>, line 1: .data[]|select(.hostname-label==test1 ) jq: 1 compile error PS C:\MYDATA\myfiles>
我在 jplay.org 中尝试了同样的方法,并且在那里也工作正常。请在 Windows.
中告诉我如何解决此问题谢谢
单引号内的双引号需要转义:
PS C:\myfiles> oci compute instance list-vnics --all --compartment-id xxxxx --profile myprof |C:\myfiles\jq-win64.exe '.data[]|select(.\"hostname-label\"==\"test1\")'
如果你有变量,将其作为参数传递:
PS C:\myfiles> oci compute instance list-vnics --all --compartment-id xxxxx --profile myprof |C:\myfiles\jq-win64.exe --arg host_name $host_name '.data[]|select(.\"hostname-label\"==$host_name)'