Bashでファイル名から拡張子とそれ以外の部分を分離する簡単な方法

example.txtというファイル名から拡張子とそれ以外の部分で分離するサンプル

$ full="example.txt"
$ extension=${full##*.}
$ filename=${full%.*}
$ echo $extension
txt
$ echo $filename
example

/path/to/example.txtのようなフルパスからディレクトリ部分を取り除くのはbasenameコマンドでできます。

$ basename /path/to/example.txt
example.txt

リンク

Bash Reference Manual: Shell Parameter Expansion
http://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html

FFmpegで動画を連結するコマンド

1. 連結したい動画をテキストファイルに書き出します。

$ vi list.txt
$ cat list.txt
file '/path/to/file1.avi'
file '/path/to/file2.avi'
file '/path/to/file3.avi'

2. FFmpegを実行します。

$ ffmpeg -f concat -safe 0 -i list.txt -c copy output.avi

エンコードもしたい場合は、次のような感じにできます。

$ ffmpeg -f concat -safe 0 -i list.txt -c:v mpeg4 -acodec libmp3lame output.mp4

リンク

Concatenate – FFmpeg
https://trac.ffmpeg.org/wiki/Concatenate

FFmpeg FAQ
http://ffmpeg.org/faq.html