我正在使用Ubuntu并希望将图像文件夹(30k图像)拆分到不同的文件夹中。但是,我想对它们进行排序(不只是拆分成更小的子文件夹)。我有一个文件,其中包含有关图像文件夹目标的信息。该文件的结构如下:
这应解释为:图像123.jpg到文件夹1,图像124.jpg到文件夹2,图像125.jpg到文件夹3。
在Ubuntu中有一种有效的方法吗?
答案 0 :(得分:1)
您可以按照以下方式根据文件中提供的说明移动文件:
awk -F"," '{ print "mv",$1,$2}' description.txt | sh
这假定description.txt
中列出的目标目录已存在。
awk
以逗号(description.txt
)的形式读取,
文件(由-F","
设置)并将必要的字符串添加到第一个$1
})和第二($ 2)字段。首先使用不带| sh
部分的上述命令来测试输出。如果一切正常,则添加| sh
以执行它们,管道(|
)将awk的输出导入shell
。
description.txt
文件包含您的示例:
123.jpg, 1
124.jpg, 2
125.jpg, 3
答案 1 :(得分:0)
假设包含文件列表和目的地的文件名为 list.txt
你可以在bash shell中这样做:
while IFS=, read -r file destination
do
echo "mv $file $destination/$file"
done < list.txt
这是基于这个问题和答案: How to parse a CSV file in Bash?