首页 > 解决方案 > sh 读取文件并在 shell 中获取特定值

问题描述

我需要读取一个 json 文件并获取类似99XXXXXXXXXXXX0and的值cccs并写入具有列BASE_Noand的 csv 文件Schedule

输入文件:classedFFDCD_5666_4888_45_2018_02112018012106.021.json

"bfgft":"99XXXXXXXXXXXX0","fp":"XXXXXX","cur_gt":225XXXXXXXX0,"cccs"
"bfgft":"21XXXXXXXXXXXX0","fp":"XXXXXX","cur_gt":225XXXXXXXX0,"nncs"
"bfgft":"56XXXXXXXXXXXX0","fp":"XXXXXX","cur_gt":225XXXXXXXX0,"fgbs"
"bfgft":"44XXXXXXXXXXXX0","fp":"XXXXXX","cur_gt":225XXXXXXXX0,"ddss"
"bfgft":"94XXXXXXXXXXXX0","fp":"XXXXXX","cur_gt":225XXXXXXXX0,"jjjs"

预期输出:

BASE_No,Schedule
99XXXXXXXXXXXX0,cccs
21XXXXXXXXXXXX0,nncs
56XXXXXXXXXXXX0,fgbs
44XXXXXXXXXXXX0,ddss
94XXXXXXXXXXXX0,jjjs

我正在使用下面的代码来读取文件名和日期,但无法读取BASE_No,的文件Schedule

SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for line in `ls -lrt *.json`; do
        date=$(echo $line |awk -F ' ' '{print $6" "$7}');
        file=$(echo $line |awk -F ' ' '{print $9}');
        echo ''$file','$(date "+%Y/%m/%d  %H.%M.%S")'' >> $File_Tracker`

标签: shell

解决方案


awk -F " \" " ' {打印 $4","$12 }' 文件

99XXXXXXXXXXXX0,ccs

21XXXXXXXXXXXX0,nncs

56XXXXXXXXXXXX0,fgbs

44XXXXXXXXXXXX0,ddss

94XXXXXXXXXXXX0,jjjs

我得到了这个结果!


推荐阅读