利用shell脚本遍历文件、执行字符串指令(labelme标注工具批量解析json)

在进行深度学习时,使用labelme标注工具标注了一系列图像,结果是json格式,每个Json文件需要在标注环境下执行一句shell命令来解析。

于是乎想到用shell脚本方法写个循环。首先先用文本建立一个.sh的文件,然后如下:

这个脚本的作用就是遍历文件夹里所有.json文件,首先要判断后缀是不是.json,然后读取文件名,命名新的字符串,然后执行一句shell命令$cmd。这句命令行里面拼接了自定义的字符串,使得xxx.json文件解析为一个xxx_json的文件夹。这大大缩减了工作量!

#!/bin/bash

echo "Now begin to search json file..."
for file in ./*
do
    if [ "${file##*.}"x = "json"x ]
    then
    filename=`basename $file`
    temp_filename=`basename $file  .json`
    suf=_json
    new_filename=${temp_filename}${suf}
#    echo $new_filename
    cmd="labelme_json_to_dataset ${filename} -o ${new_filename}"
    eval $cmd
    fi
#    printf "no!\n "
done

亲测可行。

本脚本也可以用于其他情况如判断后缀、遍历文件、做其他操作等等,提供参考框架。注意sh文件我是放在和json的同一文件夹下。

关于labelme:https://github.com/wkentaro/labelme

猜你喜欢

转载自blog.csdn.net/lyxleft/article/details/82222452