我在linux中有下面的json
文件,我想从文件中查找标记p.s.i没有安装jq
,并且不知何故没有安装权限。
{
"time":"06/11 09:34:25.868969",
"8":"FIX.4.2",
"9":"347",
"35":"D",
"49":"ABC"
}
8 eight
9 nine
35 thirty_five
将返回如下内容,如果没有找到映射,只打印原始值
输出:
{
"time":"06/11 09:34:25.868969",
"eight":"FIX.4.2",
"nine":"347",
"thirty_five":"D",
"49":"ABC"
}
预计您的值文件只有两列,请尝试以下脚本:
js_file='json_file'
cp "$js_file" "$js_file"`date +%y%m%d%H%M%S`
val_file='value_file'
while IFS= read -r line; do
line_arr=($line)
sed -i 's/"'"${line_arr[0]}"'":"/"'"${line_arr[-1]}"'":"/' "$js_file"
done < "$val_file"
cp
命令将备份原始文件以进行回滚,如果不需要,可以删除该文件。
sed
将替换如下运行的值:sed -i 's/"35":"/"thirty_five":"/' json_file