我有 2 个文件file1.seq
和file2.seq
.
它们看起来像这样:
file1.seq
ACGGTGTGATG
file2.seq
CGTGATGATGT
我想制作一个 fasta 文件,如下所示:
>file1.seq
ACGGTGTGATG
>file2.seq
CGTGATGATGT
我怎样才能做到这一点?
答案1
用一个简单的 for 循环:
for f in file*.seq; do printf ">%s\n" "$f"; cat -- "$f"; done >newfile
- 该
for
循环遍历目录中匹配的所有文件file*.seq
。 printf
ptints 文件名。- 并
cat
打印该文件的内容。 >newfile
将所有内容重定向到名为newfile
.
或者与awk
:
awk 'FNR==1{print ">"FILENAME}1' file*.seq
FNR==1
是文件中当前的记录号print ">"FILENAME
打印带有前导的文件名>
1
在所有其他情况下打印该行。