多くのファイルが作成される場合に、それを更新年月日ごとに整理したいことがあります。
そういう時に使えるシェルスクリプトです。
スクリプト
#!/bin/sh
for file in `find /home/mituo/temp/ts -name "*.ts"`; do
fname="${file##*/}"
ymd=`date +%Y%m%d -r $file`
mkdir -p /home/mituo/temp/classify/$ymd
mv $file /home/mituo/temp/classify/$ymd/$fname
echo $fname
done
解説すると、
fname=”${file##*/}” : ファイル名のみ取得
ymd=`date +%Y%m%d -r $file` : ファイルの更新年月日
mkdir -p /home/mituo/temp/classify/$ymd : その日付でディレクトリ作成
ts merge も書き換え
#!/bin/sh
rm -r ./temp/*.*
for i in `ls -v ts/*/*.ts` ; do
echo file "'$i'"
done > list.txt
ffmpeg -f concat -i list.txt -c copy ./temp/`date +%Y%m%d`.ts
for file in ./temp/*.ts; do
echo $file
faname_ext="${file##*/}"
fname="${faname_ext%.*}"
ffmpeg -i $file -c:v copy -c:a copy ./mp4/$fname.mp4
done
このシェルスクリプトは再帰的にファイル検索していないので、各ファイルは直下にある必要があります。