【问题标题】:Match a line and cat multiple files into one file匹配一行并将多个文件归为一个文件
【发布时间】:2017-07-02 19:18:38
【问题描述】:

我有一个包含 3 列和 4426 行的文件,类似这样

文件1:

DAEQUEG00000025 FP3SLUG00002140 FOMPING00001058 
DAEQUEG00001923 FP3SLUG00002391 FOMPING00000186 
DAEQUEG00000047 FP3SLUG00002116 FOMPING00001081 
DAEQUEG00000321 FP3SLUG00006281 FOMPING00000374

我有相同数量的文件并以相同的方式命名 (DAEQUEG00000025.fa FP3SLUG00002140.fa FOMPING00001058.fa)

我想将第一行匹配到文件列表并将cat 匹配到一个文件中。

预期输出(一个文件的第一行)

>DAEQUEG00000025 ATGTTGTTTAGATTGGCCCGGCGAGCTACAAGCCCGCTCACCCGCTCGATGGCGACGCAT GCGCGAGGACTCCCTGCTCTACTCGAGAAGAAACCAGACGATGTAGTCATAACATTCGCA >FP3SLUG00002140 AAGCGTACTGCTATGGCACGCGCGAGGAAGGGTCAGCTAAAGGACATCCCTGTCGACGAG >FOMPING00001058 CTTATGCAGGCTCTCATCAAGACTCAGCTCGATCCAGCTATGCTAGAGGACATATGCGTA GGGACTTGTCACCCTCCGTCACCGACGTACATCTCTCGAGCAGCTGCTCTTGCTGCTGGA

【问题讨论】:

  • 4426 行我有相同数量的文件 表示 4426 个文件?
  • ..你为自己尝试了什么,你在哪里失败了?
  • 只是第一行?那你要cat一共3个文件吗?
  • 另外,显示一些示例数据和预期输出。
  • @RomanPerekhrest 是的,每一行都有 3 个文件放入一个文件中

标签: awk sed grep cat


【解决方案1】:

你可以试试,

while read -r a b c; do 
    cat "$a.fa" "$b.fa" "$c.fa" > "${a}_${b}_${c}.fa"; 
done < file1

你会得到几个带有复合名称的文件作为输出,例如

DAEQUEG00000025_FP3SLUG00002140_FOMPING00001058.fa

>DAEQUEG00000025 ATGTTGTTTAGATTGGCCCGGCGAGCTACAAGCCCGCTCACCCGCTCGATGGCGACGCAT GCGCGAGGACTCCCTGCTCTACTCGAGAAGAAACCAGACGATGTAGTCATAACATTCGCA >FP3SLUG00002140 AAGCGTACTGCTATGGCACGCGCGAGGAAGGGTCAGCTAAAGGACATCCCTGTCGACGAG >FOMPING00001058 CTTATGCAGGCTCTCATCAAGACTCAGCTCGATCCAGCTATGCTAGAGGACATATGCGTA GGGACTTGTCACCCTCCGTCACCGACGTACATCTCTCGAGCAGCTGCTCTTGCTGCTGGA

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-17
    • 1970-01-01
    • 1970-01-01
    • 2012-10-15
    • 2013-01-09
    • 2017-08-17
    相关资源
    最近更新 更多