如何在 bash shell 中进行这个简单的批量重命名



我正在尝试重命名所有*_[m|f].txt的文件*.txt .如果文件名中出现_[m|f]的实例,我们可以假设它总是显示在.txt扩展名的正前方。

例子:

+-----------------------+---------------------+
|        input          |       output        |
+-----------------------+---------------------+
| hello_hi_wefwef_f.txt | hello_hi_wefwef.txt |
+-----------------------+---------------------+
| ya_yo_sup_m.txt       | ya_yo_sup.txt       |
+-----------------------+---------------------+

我目前正在尝试这个:

for i in *_[m|f].txt ; do
   mv "$i" "${i/-_[m|f].txt/.txt}"
done

但它抱怨没有正则表达式的 | 运算符。有没有一种简单的方法来做我想做的事?

像这样修改脚本:

for i in *_[mf].txt; do
   mv "$i" "${i/_[fm].txt/.txt}"
done

相关内容

  • 没有找到相关文章

最新更新