-4

複数のシーケンスファイルがあります

>abc|d017961
sequence1......

>cdf|rhtdm9
sequence2......

>ijm|smthr12
sequence3......

>abc|d011wejr
sequence4......

>stg|eethwe77
sequence5......

ファイルを編集し、結果ファイルを

>abc_ABC__d017961
sequence1......

>cdf_CDF__rhtdm9
sequence2......

>ijm_IJM__smthr12
sequence3......

>abc_ABC__d011wejr
sequence4......

>stg_STG__eethwe77
sequence5......

ありがとう!

4

2 に答える 2

1

入力フィールドセパレーター (FS) を|、出力フィールドセパレーター (OFS) を に定義してから_、関数を使用できtoupper()ます。

すべて一緒に:

$ awk 'BEGIN{OFS="_"; FS="\|"}{print $1,toupper($1),OFS,$2}' file
abc_ABC___d017961 sequence1......
cdf_CDF___rhtdm9 sequence2......
ijm_IJM___smthr12 sequence3......
abc_ABC___d011wejr sequence4......
stg_STG___eethwe77 sequence5......
于 2013-09-25T11:14:33.980 に答える
1
perl -pe 's/ (\w+) \| /$1_\U$1\E__/x' file

また

perl -lpe '$_ = "$1_\U$1\E__$2" if / (\w+) \| (\w+)/x' file
于 2013-09-25T11:28:43.353 に答える