パターンとファイル名を使用したファイルの分割

パターンとファイル名を使用したファイルの分割

特定のパターンのファイルコンテンツがありますが、パターンマッチング後にファイルを複数のファイルに分割し、パターン名を出力ファイル名として使用したいと思います。はい

P1_1r6r

NRVSTVQQLTKRFSLGMLQGRGPLKLFMALVAFLRFLTIPPTAGILKRWGTIKKSKAINV LRGFRKEIG-    RMLNILNRRRRRVSTVQQLTKRFSLGMLQGRGPLKLFMALVAFLRFLTIP

P1_1sfk

MALVAFLRFLTIPPTAGILKRWGTIKKSKAINVLRGFRKEIGRMLNILNRRRRRVSTVQQ LTKRFSLGMLQGRGPLKLFMALVAFLRFLTIPPTAGILKRWGTIKKSKAINVLRGFRKEI

P1_12562 RFSLPLKLFMALVAFLRFLTIPPTAGILKRWGTIKKSKAINVLRGFRKEIGRM LNILNRRRRRVSTVQQLTKRFSLGMLQGRGPLKLFMALVAFLRFLTIPPTAGILKRWGTI

したがって、ここのパターンは上記のファイルP11r6r,1sfk,12562

答え1

アッ方法:

awk '$1~/^P1_[0-9a-z]+/{ fn=substr($1,4); if(NF>1) { $1=""; print >> fn} next }
     NF && fn{ print >> fn }' file

結果を見る:

$ head 1*
==> 12562 <==
 RFSLPLKLFMALVAFLRFLTIPPTAGILKRWGTIKKSKAINVLRGFRKEIGRM LNILNRRRRRVSTVQQLTKRFSLGMLQGRGPLKLFMALVAFLRFLTIPPTAGILKRWGTI

==> 1r6r <==
NRVSTVQQLTKRFSLGMLQGRGPLKLFMALVAFLRFLTIPPTAGILKRWGTIKKSKAINV LRGFRKEIG-    RMLNILNRRRRRVSTVQQLTKRFSLGMLQGRGPLKLFMALVAFLRFLTIP

==> 1sfk <==
MALVAFLRFLTIPPTAGILKRWGTIKKSKAINVLRGFRKEIGRMLNILNRRRRRVSTVQQ LTKRFSLGMLQGRGPLKLFMALVAFLRFLTIPPTAGILKRWGTIKKSKAINVLRGFRKEI

関連情報