0

我是 unix 新手(使用 Mac OS X 终端),我试图通过在文件名中间添加一些文本来重命名某些文件。对于文件夹 ./temp 中的所有文件,我想替换以 ./temp 开头dr_ic0004的文件名dr_ic0004_DMN

例如 dr_0004_tstat1.txtdr_0004_tstat2.txt分别 dr_0004_DMN_tstat1.txtdr_0004_DMN_tstat2.txt

4

2 回答 2

2
for filename in dr_0004*
do
    mv "$filename" dr_0004_DMN"${filename#dr_0004}"
done
于 2012-06-29T14:50:00.570 回答
-1

假设你有dr_ic0004foo和。要查看所有内容,您可以:dr_ic0004bardr_ic0004baz

ls dr_ic0004*

要隔离变量部分(和) foo,您可以通过 sed 运行该列表:barbaz

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
于 2012-06-29T14:18:48.143 回答