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
ptintファイル名。- そして
cat
ファイルの内容を印刷します。 >newfile
すべてを名前付きディレクトリにリダイレクトしますnewfile
。
または以下を使用してawk
:
awk 'FNR==1{print ">"FILENAME}1' file*.seq
FNR==1
ファイルの現在のレコード番号。print ">"FILENAME
ファイル名を先行印刷>
1
それ以外の場合は、その行を印刷してください。