我有json文件,它从文件中提取颜色值。出于某种原因,它只获取一段代码&对于其他代码,它会抛出错误。
片段
#!/bin/bash
clear
echo "Add the figma json file path"
read path
figma_json="$(echo -e "${path}" | tr -d '[:space:]')"
echo "*****************************************"
color_values=$(cat $figma_json | jq -r '.color')
color_keys=$(cat $figma_json | jq -r '.color | keys' |sed 's,^ *,,; s, *$,,'| tr -s ' ' | tr ' ' '_')
echo $color_keys
for c_key in $color_keys
do
echo "key string: $c_key"
echo $color_values | jq ".$c_key.value"
echo "*********************************************"
done输出
trimmed string: "gray1",
{
"description": "",
"type": "color",
"value": "#333333ff",
"extensions": {
"org.lukasoppermann.figmaDesignTokens": {
"styleId": "S:0b49d19e868ec919fac01ec377bb989174094d7e,",
"exportKey": "color"
}
}
}
null
*********************************************
trimmed string: "gray2" //Expected output
"#333333ff"
*********************************************如果我们查看第二个输出,它将输出gray2的十六进制值,这是预期的输出,请使用下面的链接获取json文件链接
发布于 2022-04-05 11:54:25
目前还不清楚您的目标是什么,但这里有一种方法,您可以使用对jq的一个调用从JSON文件中读取数据,而且很可能不需要使用sed或tr。选择和格式可以很容易地根据您的喜好进行调整。
jq -r '.color | to_entries[] | "\(.key): \(.value.value)"' "$figma_json"gray1: #333333ff
gray2: #4f4f4fff
gray3: #828282ff
gray4: #bdbdbdff
gray5: #e0e0e0ff
gray6: #f2f2f2ff
red: #eb5757ff
orange: #f2994aff
yellow: #f2c94cff
green1: #219653ff
green2: #27ae60ff
green3: #6fcf97ff
blue1: #2f80edff
blue2: #2d9cdbff
blue3: #56ccf2ff
purple1: #9b51e0ff
purple2: #bb6bd9ffhttps://stackoverflow.com/questions/71750689
复制相似问题