我是 unix 新手(使用 Mac OS X 终端),我试图通过在文件名中间添加一些文本来重命名某些文件。对于文件夹 ./temp 中的所有文件,我想替换以 ./temp 开头dr_ic0004
的文件名dr_ic0004_DMN
。
例如
dr_0004_tstat1.txt
和dr_0004_tstat2.txt
分别
dr_0004_DMN_tstat1.txt
和dr_0004_DMN_tstat2.txt
。
我是 unix 新手(使用 Mac OS X 终端),我试图通过在文件名中间添加一些文本来重命名某些文件。对于文件夹 ./temp 中的所有文件,我想替换以 ./temp 开头dr_ic0004
的文件名dr_ic0004_DMN
。
例如
dr_0004_tstat1.txt
和dr_0004_tstat2.txt
分别
dr_0004_DMN_tstat1.txt
和dr_0004_DMN_tstat2.txt
。
for filename in dr_0004*
do
mv "$filename" dr_0004_DMN"${filename#dr_0004}"
done
假设你有dr_ic0004foo
和。要查看所有内容,您可以:dr_ic0004bar
dr_ic0004baz
ls dr_ic0004*
要隔离变量部分(和) foo
,您可以通过 sed 运行该列表:bar
baz
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