Bash脚本删除目录中多个文件名末尾的'x'字符数量?

use*_*230 5 unix linux bash sed

我在目录(/path/to/local)中有一个文件名列表.我想从所有这些文件名中删除一定数量的字符.

示例文件名:

iso1111_plane001_00321.moc1
iso1111_plane002_00321.moc1
iso2222_plane001_00123.moc1
Run Code Online (Sandbox Code Playgroud)

在每个文件名中,我希望删除文件扩展名之前的最后5个字符.

例如:

iso1111_plane001_.moc1
iso1111_plane002_.moc1
iso2222_plane001_.moc1
Run Code Online (Sandbox Code Playgroud)

我相信这可以使用sed,但我无法确定确切的编码.就像是...

for filename in /path/to/local/*.moc1; do
    mv $filname $(echo $filename | sed -e 's/.....^//');
done
Run Code Online (Sandbox Code Playgroud)

......但这不起作用.对不起,如果我屠杀了sed选项,我没有太多的经验.

Zol*_*ich 6

 mv $filname $(echo $filename | sed -e 's/.....\.moc1$//');
Run Code Online (Sandbox Code Playgroud)

要么

 echo ${filename%%?????.moc1}.moc1
Run Code Online (Sandbox Code Playgroud)

%%是一个bash内部运营商......