1. 程式人生 > >利用shell指令碼遍歷檔案、執行字串指令(labelme標註工具批量解析json)

利用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的同一資料夾下。