如何在shell脚本中查找多个值的值



我在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

相关内容

  • 没有找到相关文章

最新更新