【发布时间】:2016-07-23 11:30:36
【问题描述】:
我的任务是编写一个脚本,在给定目录中搜索所有没有.old 扩展名的文件,并将文件重命名为这种格式:filename.old。我试过这个脚本:
#!/bin/bash
for i in $(grep "\.[^old]&" $1 | ls)
do
mv "$1/$i" "$1/$i.old"
done
但它给出了错误的输出。
- 这些文件在我的目录中:
f1, f2.old, f3, f4.old。 - 预期输出:
f1.old, f2.old, f3.old, f4.old。 - 我的输出(第一次发布):
f1.old, f2.old.old, f3.old, f4.old.old。 每次我启动脚本时,它都会不断添加.old扩展名,所以它变成了这样: - 我的输出(第二次发布):
f1.old.old, f2.old.old.old, f3.old.old, f4.old.old.old。
如何改进?
【问题讨论】: