長くて短いですが、選択した行の末尾をコピーしてその行にテキストを追加する方法はありますか?私が達成したいのはこれです。
私が所有しているもの
>13_gnd
atcg
>14_galF
atgc
私が望むもの
>13_gnd_gnd
atcg
>14_galF_galF
atgc
したがって、最後の単語で始まるすべての行をコピーして行の>
末尾に追加します。ありがとうございます。
ベストアンサー1
$ sed 's/_[^_]*$/&&/' file
>13_gnd_gnd
atcg
>14_galF_galF
atgc
置換は、sed
各行の最後の下線とその後のすべての項目(行の最後まで)と一致します。これはパターンが_[^_]*$
実行することです(「アンダースコア以外の文字が後に続く可能性があるアンダースコアと行の末尾と一致する」)。そうだろう変えるこれは(下線付き)何でも2回一致します(&&
代替ビットの内容です)。
ファイルのようだからfasta形式、ゲノム配列には下線を含めることができないため、行の先頭>
に特別なテストは必要ありません。