Bash正则表达式目录重命名

时间:2013-01-24 06:52:34

标签: regex bash

我有

形式的目录

*Var0.5Def1Min1, *Var0.5Def1Min2, ... , *Var0.5Def10Min100

我只想将 Var0.5 的部分重命名为 Var0.50

例子:
*Var0.5Def1Min1 > *Var0.50Def1Min1
*Var0.5Def10Min100 > *Var0.50Def10Min100

2 个答案:

答案 0 :(得分:3)

for i in *Var*; do mv $i ${i/Var0.5/Var0.50} ; done
Var0.50Def1Min1
Var0.50Def10Min100

这是使用大括号扩展技术。

示例:

sgeorge-mn:stack sgeorge$ ls -l
total 0
drwxr-xr-x  2 sgeorge  eng  68 Jan 24 12:31 Var0.5Def10Min100
drwxr-xr-x  2 sgeorge  eng  68 Jan 24 12:30 Var0.5Def1Min1
sgeorge-mn:stack sgeorge$ for i in *Var*; do mv $i ${i/Var0.5/Var0.50} ; done
sgeorge-mn:stack sgeorge$ ls -l
total 0
drwxr-xr-x  2 sgeorge  eng  68 Jan 24 12:31 Var0.50Def10Min100
drwxr-xr-x  2 sgeorge  eng  68 Jan 24 12:30 Var0.50Def1Min1

答案 1 :(得分:0)

你应该试试rename,这是util-linux(-ng)的一部分。