
私はロープを持っています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