linux - 将文件排列到目录中时遇到问题
问题描述
我正在尝试将名称为 f##.txt(#being 数字 0-9)的文本文件组织到目录中,以使它们最终成为 d#/f#.txt。
#! /bin/bash
for i in {0..9} ;
do
mkdir -p "$1/d$i "
for j in {0..9};
do
FILE= "/$1/f$i$j.txt"
if [ -f FILE ];
then
echo 'Moving!'
mv "/$1/f$i$j.txt" "/$1/d$i/f$j.txt"
fi
done
done
上面的代码是我到目前为止的代码,但我不断收到错误:
CO1101/OSN2/q4-arrange.sh: line 8: /test/f00.txt: No such file or directory
我不知道我哪里错了。
测试目录在当前工作目录中
解决方案
看起来您在 FILE= 和“/$1/f$i$j.txt”之间有一个空格。尝试删除空间,看看会发生什么。Bash 不喜欢变量赋值中的空格(即等号周围)。
希望这可以帮助。
推荐阅读
- java - 为什么 WebSphere SAML SSO IDAssertion 调查 UserRegistry?
- android - 如何删除底部导航视图周围的边框
- windows - windows下安装Tensorflow报错如何解决?
- sql - 列出 DolphinDB 数据库中的表
- java - 从Java中的可变参数字符串中提取值
- android - BroadcastReceiver中的Android startActiviy
- excel - 在 Excel 的列块中附加键控行值
- java - 如何在 ViewHolder RecyclerView 适配器中单击时关闭底部表?
- html - Unicode可以在标签的'src'属性中使用而不是路径
- r - 如何通过 R 中的 gt 表按升序(1 月、2 月、3 月)显示我的月份?