我是unix新手(使用Mac OS X终端),并试图通过在文件名中间添加一些文本来重命名某些文件。对于./temp文件夹中的所有文件,我想用dr_ic0004_DMN
替换从dr_ic0004
开始的文件名。多文件重命名unix
例如 dr_0004_tstat1.txt
和dr_0004_tstat2.txt
分别 dr_0004_DMN_tstat1.txt
和dr_0004_DMN_tstat2.txt
。
我是unix新手(使用Mac OS X终端),并试图通过在文件名中间添加一些文本来重命名某些文件。对于./temp文件夹中的所有文件,我想用dr_ic0004_DMN
替换从dr_ic0004
开始的文件名。多文件重命名unix
例如 dr_0004_tstat1.txt
和dr_0004_tstat2.txt
分别 dr_0004_DMN_tstat1.txt
和dr_0004_DMN_tstat2.txt
。
假设您有dr_ic0004foo
,dr_ic0004bar
和dr_ic0004baz
。看到他们,你会怎么做:
ls dr_ic0004*
到变量部分(foo
,bar
和baz
),你可以通过运行列表隔离的sed:
ls dr_ic0004*|sed 's/^dr_ic0004//'
要重命名一个文件你将使用mv
:
mv dr_ic0004foo dr_ic0004_DMNfoo
并遍历一个列表,你可以使用一个for
循环:
for x in foo bar baz; do echo $x ; done
把它们放在一起,你会得到:
for x in `ls dr_ic0004*|sed 's/^dr_ic0004//'`; do mv dr_ic0004$x dr_ic0004_DMN$x; done
for filename in dr_0004*
do
mv "$filename" dr_0004_DMN"${filename#dr_0004}"
done
的[重命名Unix的多个文件]可能重复(http://stackoverflow.com/questions/1086502/rename -multiple-files-in-unix) –
你需要一个for来捕获这个名字,然后你需要用sed或gawk或者其他东西来处理这个名字来创建这个新名字。键入man sed来查找它的语法。 – Spidey
欢迎来到StackOverflow!我们很乐意提供帮助。你有什么尝试? – ghoti