我是unix的新手(使用Mac OS X终端),我试图通过在文件名中间添加一些文本来重命名某些文件。对于文件夹./temp中的所有文件,我想用dr_ic0004
替换以dr_ic0004_DMN
开头的文件名。
例如
dr_0004_tstat1.txt
和dr_0004_tstat2.txt
dr_0004_DMN_tstat1.txt
和dr_0004_DMN_tstat2.txt
分别
答案 0 :(得分:2)
for filename in dr_0004*
do
mv "$filename" dr_0004_DMN"${filename#dr_0004}"
done
答案 1 :(得分:-1)
假设您有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