【问题标题】:only copying files with unique content只复制具有独特内容的文件
【发布时间】:2016-10-06 00:17:43
【问题描述】:

我正在尝试过滤低谷数据,并且只想复制只有 1 个代表某个组的文件。例如,该文件可能如下所示:

sample_AAAAA_9824_r1 GGAAGCATCGTGGGAACTGCTTCACTAAGAAGGAAGTCACAGTTACTTCATAGATATCCATCACTAAAYGTGAGTAGATTGTGTTAATGTGTTATATATGACTGAAAAATTTTGCCTGGATCAGAATACGAAACCTTCTTGAGATATTGTAATGAATTTCAGTCATATGAGAAGTGATGGAGGGGGTGTGAATACATATACTGTGTCATTATCCATGCAGTATkATACTRCAAAGTTC----- 样本_AACCC_12358_r1 GGAAGCATCGTGGGAACTGCTTCACTAAGAAGGAAGTCACAGTTACTTCATAGATATCCATCACTAAATGTGAGTAGATTGTGTTAATGTGTTATATATGACTGAAAAWTTTTGCCTGGATCAGAATACGAAACCTTCTTGAGATATTGTAATGAATTTCAGTCATATGAGAAGTGATGGAGGGGGTGTGAATACATATACTGTGTCATTATCCATGCAGTATTATACTGCAAAGTTC----- 样品_AATTT_3905_r1 GGAAGCATCGTGGGAACTGCTTCACTAAGAAGGAAGTCACAGTTACTTCATAGATATCCATCACTAAATGTGAGTAGATTGTGTTAATGTGTTATATATGACTGAAAAATTTTGCCTGGATCAGAATACGAAACCTTCTTGAGATATTTTCAGTCATATGAGAATTGATGGAGGGGGTGTGAATACATATACTGTGTCATTATCCATGCAGTATGATACTACAAAGTTCCTTCCCATA-- 样品_ACGTA_178_r1 GGAAGCATCGTAGGAACTGCTTCACTAAGAAGGAAGTCACAGTTACTTCATAGATATCCATCACTAAATGTGAGTAGATTGTGTTAATGTGTTATATATGACTGAAAATTTTTGCCTGGATCAGAATACGAAACCTTCTTGAGATATTGTAATGAATTTCAGTCATATGAGAAGCGATGGAGGGGGTGTGAATACATATACTGTGTCATTATCCATGCAGTATGATACTACAAAGTTC----- 样品_ACTGC_9933_r1 GGAAGCATCGTRGGAACTGCTTCACTAAGAAGGAAGTCACAGTTACTTCATAGATATCCATCACTAAATGTGAGTAGATTGTGTTAATGTGTTATATATGACTGAAAAwTTTTGCCTGGATCAGAATACGAAACCTTCTTGAGATATTGTAATGAATTTCAGTCATATGAGAAGYGATGGAGGGGGTGTGAATACATATACTGTGTCATTATCCATGCAGTATGATACTACAAAGTTC-----

我有大约 36000 个这些文件,并且只想将这些文件复制到每个样本只有一个条目的不同文件夹(1 个样本例如样本 ACTGC)。有 26 个样本“数字”,由 5 个字母组成(例如 AAAAA、AATTTT、ACGTC、...)以下数字和“r1”无关。

为此,我一直在查看不同的 bash 脚本,但找不到我需要的确切内容。我可以计算文件中每个样本的出现次数,但这可能不是要走的路……

非常感谢任何帮助, 亚尼克

【问题讨论】:

  • 请阅读stackoverflow.com/help/how-to-ask。向我们展示您已经尝试过的方法以及无效的方法。
  • 您确实应该使用数据库来存储这些信息,而不是数千个单独的文件。

标签: bash unique copying


【解决方案1】:

您可以根据sort 的输出与sort | uniq 的输出使用循环来比较cmp

for f in files/*
do if cmp -s <(grep sample ${f} | cut -d'_' -f2 | sort) <(grep sample ${f} | cut -d'_' -f2 | sort | uniq)
then
    echo "copying file ${f} here..."
    # ... copy
else
    "not copying file ${f} here" # do nothing...!
fi
done

【讨论】:

  • 非常感谢您的快速回复,我认为这会奏效!
猜你喜欢
  • 2014-12-14
  • 2023-03-31
  • 1970-01-01
  • 2021-01-20
  • 1970-01-01
  • 1970-01-01
  • 2016-08-20
  • 2012-11-14
  • 2019-12-28
相关资源
最近更新 更多