将列表中文件的特定组合连接到子目录

时间:2018-11-27 10:52:32

标签: bash cat

我想将大量特定的文件组合从10个文件的列表放到其相应的子目录中。我有一个主目录,其中包含126个子目录

  

CrHfMoNbN,CrHfMoTaN,CrHfMoTiN,...,TiVWZrN

,依此类推,基本上是以下列表中每个组合的一个子目录,该列表按字母顺序排序,并附加“ N ”:

  

CrHfMoNb CrHfMoTa CrHfMoTi CrHfMoV CrHfMoW CrHfMoZr CrHfNbTa CrHfNbTi CrHfNbV CrHfNbW CrHfNbZr CrHfTaTi CrHfTaV CrHfTaW CrHfTaZr CrHfTiV CrHfTiW CrHfTiZr CrHfVW CrHfVZr CrHfWZr CrMoNbTa CrMoNbTi CrMoNbV CrMoNbW CrMoNbZr CrMoTaTi CrMoTaV CrMoTaW CrMoTaZr CrMoTiV CrMoTiW CrMoTiZr CrMoVW CrMoVZr CrMoWZr CrNbTaTi CrNbTaV CrNbTaW CrNbTaZr CrNbTiV CrNbTiW CrNbTiZr CrNbVW CrNbVZr CrNbWZr CrTaTiV CrTaTiW CrTaTiZr CrTaVW CrTaVZr CrTaWZr CrTiVW CrTiVZr CrTiWZr CrVWZr HfMoNbTa HfMoNbTi HfMoNbV HfMoNbW HfMoNbZr HfMoTaTi HfMoTaV HfMoTaW HfMoTaZr HfMoTiV HfMoTiW HfMoTiZr HfMoVW HfMoVZr HfMoWZr HfNbTaTi HfNbTaV HfNbTaW HfNbTaZr HfNbTiV HfNbTiW HfNbTiZr HfNbVW HfNbVZr HfNbWZr HfTaTiV HfTaTiW HfTaTiZr HfTaVW HfTaVZr HfTaWZr HfTiVW HfTiVZr HfTiWZr HfVWZr MoNbTaTi MoNbTaV MoNbTaW MoNbTaZr MoNbTiV MoNbTiW MoNbTiZr MoNbVW MoNbVZr MoNbWZr MoTaTiV MoTaTiW MoTaTiZr MoTaVW MoTaVZr MoTaWZr MoTiVW MoTiVZr MoTiWZr MoVWZr NbTaTiV NbTaTiW NbTaTiZr NbTaVW NbTaVZrTaVVNNTaTaVZr Zr TaTiWZr TaVWZr TiVWZr

此列表存储在文件list.txt中的主目录中。需要连接的文件也存储在此目录中,它们被称为:file_Crfile_Hffile_Mofile_Nfile_Nb,{{ 1}},file_Tafile_Tifile_Vfile_W,因此每个化学元素都有一个文件。我需要做的是连接这些文件,以便对于元素的每个排列,将相应的文件放在一起并存储在其子文件夹中。关键部分是按正确的顺序将它们连接起来,顺序如下:始终,首先file_Zr,然后按照列表的顺序(按字母顺序)排列金属文件。例如在子文件夹

  

CrHfMoNbN

在文件夹

中,顺序为file_N-> file_N-> file_Cr-> file_Hf-> file_Mo
  

NbTiVWN

顺序为file_Nb-> file_N-> file_Nb-> file_Ti-> file_V。生成的文件应始终命名为file_W

1 个答案:

答案 0 :(得分:0)

您可以使用

egrep -wo "^PREFIX" list.txt | xargs -I '{}' mv {} \file_PREFIX

每种文件的

。我不确定在“ list.txt”文件中指定了哪些信息,文件的实际位置在哪里,为文件和目录指定的名称的模式是什么,等等。

您可以尝试根据自己的实际需求修改此行。