0

我正在尝试将所有文​​件重命名*_[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

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

4

1 回答 1

2

像这样修改你的脚本:

for i in *_[mf].txt; do
   mv "$i" "${i/_[fm]\.txt/\.txt}"
done
于 2012-12-05T20:25:51.043 回答