text: user4595: 
  EDITED
  
  I have list of my samples in first column and corresponding file name for my .vcf files in second column of a file name clin_name.txt like below. For example name of one vcf is LP6008031-DNA_A04_vs_LP6008032-DNA_D03.snp.pass.vcf
  OC/AH/120/E/T3  LP6005409-DNA_F01
  OC/AH/126/E/T1  LP2000325-DNA_A01
  OC/AH/136/E/T3  LP6005409-DNA_E02
  
  This is the link of my file https://www.dropbox.com/s/mvzf47feiqe7x69/clin_name.txt.txt?dl=0
  In the second file name pre_post.list I have information of pre or post treatment for each sample like this
  pre-treated post-treated
  OC/AH/120   OC/AH/065
  OC/AH/126   OC/AH/069
  OC/AH/136   OC/AH/074
  OC/AH/160   OC/AH/084
  
  This is link of this https://www.dropbox.com/s/nhv3odjkdjdp7hz/pre_post.list.txt?dl=0
  For moving different .vcf files based on the pre or post treatment to separate folders I typed 
  cat pre_post.list | awk '{print $2}' | sed 's@.*/@@'  > post_list.txt
  cat pre_post.list | awk '{print $1}' | sed 's@.*/@@'  > pre_list.txt
  
  Then I have 
  pre-treated
  120
  126
  136
  160
  182
  
  post-treated
  065
  069
  074
  084
  
  I then typed ./test.sh in which I wrote
  for item in  $(cat  pre_list.txt | grep -Eo '[0-9]{1,4}');
      do if grep -q $item clin_name.txt ;
      then out=$(grep $item clin_name.txt | awk  '{print $1}');
           cp *$out* /temp/hgig/fi1d18/TRG45/snp/
      else echo post_list $item;  fi;  done;
  
  That returns
  cp: cannot stat `*OC/AH/069/S/T3*': No such file or directory
  [fi1d18@cyan01 snp]$
  
  Or I run 
  for item in  $(cat  post_list.txt | grep -Eo '[0-9]{1,4}');
      do if grep -q $item clin_name.txt ;
      then out=$(grep $item clin_name.txt | awk  '{print $1}');
           cp *$out* /temp/hgig/fi1d18/TRG45/snp/pre/
      else cp *$out* /temp/hgig/fi1d18/TRG45/snp/post/;  fi;  done;
  
  That returns
  cp: cannot stat `OC/ST/026/S/T1*': No such file or directory
  [fi1d18@cyan01 snp]$
  
  I really don't know how to solve this :(
  
  user3541: You need to bring together the information in the two tables, I prefer R for such actions. The common columns between the two tables do not quite contain the same information hence additional data cleaning was required. Moreover the table with treatment information had to be changed to long format with melt. And I have filtered the merged_data so as to conation only "pretreatment" info but you can add a if/else statement to the for loop to control how/where you will move your files.
  library(data.table)
  
  clin_name <- fread("clin_name.txt", header = TRUE)
  clin_name$sample_id <- sub("/E/T.", "", clin_name$sample_id)
  
  pre_post <- fread("pre_post.list", header = TRUE)
  print(pre_post)
  pre_post <- melt(pre_post,
       measure.vars = c("pre-treated", "post-treated"),
       variable.name = "treatment",
       value.name = "sample_id")
  
  > print(pre_post)
        treatment sample_id
  1:  pre-treated OC/AH/120
  2:  pre-treated OC/AH/126
  3:  pre-treated OC/AH/136
  4:  pre-treated OC/AH/160
  5: post-treated OC/AH/065
  6: post-treated OC/AH/069
  7: post-treated OC/AH/074
  8: post-treated OC/AH/084
  
  
  merged_data <- merge(clin_name, pre_post)
  print(merged_data)
  
  pre <- merged_data[merged_data$treatment == "pre-treated", "file_name"]
  
  > print(merged_data)
     sample_id         file_name   treatment
  1: OC/AH/120 LP6005409-DNA_F01 pre-treated
  2: OC/AH/126 LP2000325-DNA_A01 pre-treated
  3: OC/AH/136 LP6005409-DNA_E02 pre-treated
  
  # invoking a terminal command to move each file to a directory called "pre"
  for (i in pre$file_name) {
    command <- paste0("mv ", i, " pre/")
    system(command)
  }
  
  
original_text: 4595: <blockquote>
    <p>EDITED</p>
  </blockquote>
  
  <p>I have list of my samples in first column and corresponding file name for my .vcf files in second column of a file name <code>clin_name.txt</code> like below. For example name of one vcf is <code>LP6008031-DNA_A04_vs_LP6008032-DNA_D03.snp.pass.vcf</code></p>
  
  <pre><code>OC/AH/120/E/T3  LP6005409-DNA_F01
  OC/AH/126/E/T1  LP2000325-DNA_A01
  OC/AH/136/E/T3  LP6005409-DNA_E02
  </code></pre>
  
  <p>This is the link of my file <a href="https://www.dropbox.com/s/mvzf47feiqe7x69/clin_name.txt.txt?dl=0" rel="nofollow noreferrer">https://www.dropbox.com/s/mvzf47feiqe7x69/clin_name.txt.txt?dl=0</a></p>
  
  <p>In the second file name <code>pre_post.list</code> I have information of pre or post treatment for each sample like this</p>
  
  <pre><code>pre-treated post-treated
  OC/AH/120   OC/AH/065
  OC/AH/126   OC/AH/069
  OC/AH/136   OC/AH/074
  OC/AH/160   OC/AH/084
  </code></pre>
  
  <p>This is link of this <a href="https://www.dropbox.com/s/nhv3odjkdjdp7hz/pre_post.list.txt?dl=0" rel="nofollow noreferrer">https://www.dropbox.com/s/nhv3odjkdjdp7hz/pre_post.list.txt?dl=0</a></p>
  
  <p>For moving different .vcf files based on the pre or post treatment to separate folders I typed </p>
  
  <pre><code>cat pre_post.list | awk '{print <span class="math-container">$2}' | sed 's@.*/@@'  &gt; post_list.txt
  cat pre_post.list | awk '{print $</span>1}' | sed 's@.*/@@'  &gt; pre_list.txt
  </code></pre>
  
  <p>Then I have </p>
  
  <pre><code>pre-treated
  120
  126
  136
  160
  182
  
  post-treated
  065
  069
  074
  084
  </code></pre>
  
  <p>I then typed <code>./test.sh</code> in which I wrote</p>
  
  <pre><code>for item in  <span class="math-container">$(cat  pre_list.txt | grep -Eo '[0-9]{1,4}');
      do if grep -q $</span>item clin_name.txt ;
      then out=<span class="math-container">$(grep $</span>item clin_name.txt | awk  '{print <span class="math-container">$1}');
           cp *$</span>out* /temp/hgig/fi1d18/TRG45/snp/
      else echo post_list $item;  fi;  done;
  </code></pre>
  
  <p>That returns</p>
  
  <pre><code>cp: cannot stat `*OC/AH/069/S/T3*': No such file or directory
  [fi1d18@cyan01 snp]$
  </code></pre>
  
  <p>Or I run </p>
  
  <pre><code>for item in  <span class="math-container">$(cat  post_list.txt | grep -Eo '[0-9]{1,4}');
      do if grep -q $</span>item clin_name.txt ;
      then out=<span class="math-container">$(grep $</span>item clin_name.txt | awk  '{print <span class="math-container">$1}');
           cp *$</span>out* /temp/hgig/fi1d18/TRG45/snp/pre/
      else cp *$out* /temp/hgig/fi1d18/TRG45/snp/post/;  fi;  done;
  </code></pre>
  
  <p>That returns</p>
  
  <pre><code>cp: cannot stat `OC/ST/026/S/T1*': No such file or directory
  [fi1d18@cyan01 snp]$
  </code></pre>
  
  <p>I really don't know how to solve this :(</p>
   3541: <p>You need to bring together the information in the two tables, I prefer <code>R</code> for such actions. The common columns between the two tables do not quite contain the same information hence additional data cleaning was required. Moreover the table with treatment information had to be changed to long format with <code>melt</code>. And I have filtered the <code>merged_data</code> so as to conation only "pretreatment" info but you can add a if/else statement to the for loop to control how/where you will move your files.</p>
  
  <pre><code>library(data.table)
  
  clin_name &lt;- fread("clin_name.txt", header = TRUE)
  clin_name<span class="math-container">$sample_id &lt;- sub("/E/T.", "", clin_name$</span>sample_id)
  
  pre_post &lt;- fread("pre_post.list", header = TRUE)
  print(pre_post)
  pre_post &lt;- melt(pre_post,
       measure.vars = c("pre-treated", "post-treated"),
       variable.name = "treatment",
       value.name = "sample_id")
  
  &gt; print(pre_post)
        treatment sample_id
  1:  pre-treated OC/AH/120
  2:  pre-treated OC/AH/126
  3:  pre-treated OC/AH/136
  4:  pre-treated OC/AH/160
  5: post-treated OC/AH/065
  6: post-treated OC/AH/069
  7: post-treated OC/AH/074
  8: post-treated OC/AH/084
  
  
  merged_data &lt;- merge(clin_name, pre_post)
  print(merged_data)
  
  pre &lt;- merged_data[merged_data$treatment == "pre-treated", "file_name"]
  
  &gt; print(merged_data)
     sample_id         file_name   treatment
  1: OC/AH/120 LP6005409-DNA_F01 pre-treated
  2: OC/AH/126 LP2000325-DNA_A01 pre-treated
  3: OC/AH/136 LP6005409-DNA_E02 pre-treated
  
  # invoking a terminal command to move each file to a directory called "pre"
  for (i in pre$file_name) {
    command &lt;- paste0("mv ", i, " pre/")
    system(command)
  }
  </code></pre>
  