我对bash脚本和linux还很陌生,我有一个只有日期的文件夹,比如
2012-11-20
2012-11-21
2012-11-22
2012-11-23
我的文件名为data_11202012_randomnumbers_csv。
我想创建一个脚本,通过将文件上的日期与文件夹相匹配,可以将每个csv文件移动到正确的文件夹。
我一直在输入mv file path
,但我有100个文件,我想知道是否有更简单的方法。
如有任何帮助,我们将不胜感激。
以下内容应该为您完成。我将用评论进行解释
for file in your_folder/*; do
# 1. Extract the numbers from the file name
dir="${file#data_}" # remove data_ prefix
dir="${dir%%_*}" # remove everything after first _
# 2. Rearrange the numbers into the desired format
dir="${dir:2:4}-${dir:0:2}-${dir:6:2}"
# 3. Move the file into the directory
mv file dir
done
这里有一个非常有用的bash备忘单,您可以在其中了解更多信息。它展示了我在代码片段中进行的所有变量扩展以及更多内容。