在文件夹

时间:2016-09-13 19:08:25

标签: python bash shell scripting

我想在同一目录中的文件夹中对类似文件进行分组。为了给出一个更好的主意,我正在处理图像数据集,其中我有几个具有不同文件名的主题​​的图像。但是我也会在数据集中为每个主题生成10-15个图像。所以让我们说主题A将有10个图像命名为A_1.png,A_2.png,A_3.png等等。所以,同样地,我们有n个主题。我必须将主题分组到具有与该主题相对应的所有图像的文件夹中。我尝试使用python,但我无法正确使用它。我们可以使用bash或shell脚本吗?如果是,请告知。

2 个答案:

答案 0 :(得分:1)

我想在Shell脚本上建议这个,假设我在工作目录上有A_1.png,A_2.png,A_3.png,B_1.png,B_2.png。在第一个循环中,我使用“_”作为分隔符,在第二个循环中,我使用“A / B_”作为分隔符:

for _DIR in `ls -1 | grep png | awk -F"_" '{print $1}' | uniq`; 
do  
  mkdir $_DIR; 
  for _FILE in `ls -1 | grep $_DIR\_`; 
  do 
    cp $_FILE $_DIR/; 
  done;
  find $_DIR; 
 done;

例如:

A
A/A_1.png
A/A_2.png
A/A_3.png
B
B/B_1.png
B/B_2.png

答案 1 :(得分:0)

试试这段代码。我还把假文件生成器用于测试目的。

谨慎步骤: 只有在检查完一切后才能做到。

可能的改善 移动/重命名文件而不是复制和删除

  

for {1..5}中的aaa;触摸SUBJA _ $ {aaa} .txt SUBJB _ $ {aaa} .txt SUBJC _ $ {aaa} .txt;完成

     

用于SUBJA SUBJB SUBJC中的MYSUBJ

     

DO

     

mkdir $ MYSUBJ

     

cp $ MYSUBJ * .txt $ MYSUBJ /

     

rm $ MYSUBJ * .txt

     

完成