Bash脚本删除目录中多个文件名末尾的“ x”个字符?
我在目录(/path/to/local
)中有文件名列表。我想从所有这些文件名中删除一定数量的字符。
iso1111_plane001_00321.moc1iso1111_plane002_00321.moc1
iso2222_plane001_00123.moc1
我希望在每个文件名中删除文件扩展名前的最后5个字符。
iso1111_plane001_.moc1iso1111_plane002_.moc1
iso2222_plane001_.moc1
我相信可以使用完成此操作sed
,但是我无法确定确切的编码。就像是…
for filename in /path/to/local/*.moc1; do mv $filname $(echo $filename | sed -e 's/.....^//');
done
…但是那行不通。抱歉,如果我sed
选择了这些选项,则我对此没有太多经验。
回答:
mv $filname $(echo $filename | sed -e 's/.....\.moc1$//');
要么
echo ${filename%%?????.moc1}.moc1
%%是bash内部操作员…
以上是 Bash脚本删除目录中多个文件名末尾的“ x”个字符? 的全部内容, 来源链接: utcz.com/qa/413477.html