2

我的脚本的一部分是这样的:

while read line  
do 
code=`echo ${line}  | awk  '{print $1}'`
awk -f ${supscript}/rearrange.sh < ${base}/${code}  
mv temp_output* "$code"temp_output* 
done < filelist

脚本正在运行;唯一的问题是,当它尝试重命名文件时,我收到以下错误消息:

mv: target `pollcodetemp_output*' is not a directory

也许它与IFS有关。我尝试在脚本的开头将其指定为:

IFS='
'

但它不起作用。我使用的是 Windows 文本编辑器,但我已经删除了 CR。

4

2 回答 2

4

最有可能的是,您只需要:

mv temp_output* "$code"

这会将temp_output*当前目录中命名的文件移动到变量中指定的目录$code

但是,如果$code是文件,则需要查找rename命令(有几个版本,语法不同),或者需要使用内部循环:

for file in temp_output*
do mv "$file" "$code$file"
done
于 2012-06-22T08:14:28.920 回答
2

您正在尝试将多个文件移动到一个不是目录的名称,这是不可能的。发生这种情况是因为您似乎试图从通配符模式重命名为通配符模式,这也是不可能的。我不会猜测你到底想要完成什么,所以我不能给你任何额外的建议。

于 2012-06-22T08:14:00.940 回答