我有一根绳子GameOfThronesS01E05.mkv
。我想与正则表达式GameOfThronesS01E05
一起使用sed
。
我试过
echo GameOfThronesS01E05.mkv | sed 's/\(.+\)\.mkv$/\1/'
但没用
答案1
如果您使用的系统具有 GNU 实用程序,则始终可以使用basename
来剥离扩展名:
$ basename -s ".mkv" GameOfThronesS01E05.mkv
GameOfThronesS01E05
除此之外,Python 也始终是一个不错的选择:
$ python -c 'import sys;print sys.argv[1][:-4]' GameOfThronesS01E05.mkv
GameOfThronesS01E05
答案2
这是一个更简单的解决方案:
echo GameOfThronesS01E05.mkv | sed -n 's/.mkv//p'
答案3
谢谢@don_crissti。这是我的 MKV 到 MP4 转换器
$vi /usr/local/bin/MKVtoMP4
for entry in *
do
if [[ $entry =~ .+\.mkv$ ]]; then
FILENAME=`echo $entry | sed -E 's/(.+)\.mkv$/\1/'`
ffmpeg -i "$entry" -codec copy "${FILENAME}.mp4"
fi
done
chmod ug+x /usr/local/bin/MKVtoMP4