I'm Trying to get only IP address from below command using Azure cli. But it always coming with extra "".
az network nic ip-config list --resource-group "RG_TEST" --nic-name "TEST_NIC6768" --query "[0].privateIpAddress"
Output: "10.244.4.4"
Required Output: 10.244.4.4
CodePudding user response:
Pipe the output to |ForEach-Object Trim '"' to have PowerShell automatically strip leading and trailing "'s from the output:
az network nic ip-config list --resource-group "RG_TEST" --nic-name "TEST_NIC6768" --query "[0].privateIpAddress" |ForEach-Object Trim '"'
CodePudding user response:
The az CLI outputs JSON data by default, which in the case of a string value means that it is output with enclosing "...".
While you can remove those " characters afterwards, it is better to ask az not to include them in the first place, which you can do with --output tsv (-o tsv):
# Note the addition of `--output tsv`
az network nic ip-config list --output tsv --resource-group "RG_TEST" --nic-name "TEST_NIC6768" --query "[0].privateIpAddress"
Note:
--output tsvrequests the output in TSV (tab-separated values) form, which in the case of a single string means that it is printed as-is (verbatim); aside from not having to remove enclosing"...", this also means that you never need to worry about unescaping JSON-escaped characters such as\and embedded".azsupports additional output formats.
The quick-and-dirty alternative is to simply remove all " chars. with a -replace operation:
(
az network nic ip-config list --resource-group "RG_TEST" --nic-name "TEST_NIC6768" --query "[0].privateIpAddress"
) -replace '"'
