从文件名中删除模式

时间:2014-08-29 01:34:39

标签: bash rename mv

我有一些文件名如下:

e2ed150l145l245St01-Oxs_MinDriver-Magnetization-00-0002105.omf
e2ed150l145l250St01-Oxs_MinDriver-Magnetization-00-0002167.omf
e2ed150l145l255St01-Oxs_MinDriver-Magnetization-00-0001519.omf
e2ed150l145l260St01-Oxs_MinDriver-Magnetization-00-0001841.omf
e2ed150l145l265St01-Oxs_MinDriver-Magnetization-00-0002730.omf
e2ed150l145l270St01-Oxs_MinDriver-Magnetization-00-0002788.omf
e2ed150l145l275St01-Oxs_MinDriver-Magnetization-00-0001616.omf
e2ed150l150l250St01-Oxs_MinDriver-Magnetization-00-0002386.omf
e2ed150l150l2100St01-Oxs_MinDriver-Magnetization-00-0015577.omf

我想将它们重命名为:

e2ed150l145l245St01.omf
e2ed150l145l250St01.omf
e2ed150l145l255St01.omf
e2ed150l145l260St01.omf
e2ed150l145l265St01.omf
e2ed150l145l270St01.omf
e2ed150l145l275St01.omf
e2ed150l150l250St01.omf
e2ed150l150l2100St01.omf

在一些类似的论坛之后,我使用了几个命令,包括:

rename 's/-Oxs_MinDriver-Magnetization-00-[0-9]*//g' e2e*.omf -v

但它没有用。请指教。

1 个答案:

答案 0 :(得分:1)

您也可以使用mv

for i in e2e*.omf; do
    mv $i ${i%%-*}.omf
done

for i in e2e*.omf; do
    mv $i ${i//-*/}.omf
done

要折叠到一行:

for i in e2e*.omf; do mv $i ${i%%-*}.omf; done

如果目的地已存在,请使用mv -f