テキストの他のすべての行に文字を追加する

テキストの他のすべての行に文字を追加する

何百万ものタイトルを含む段落(別名段落)を含む巨大な(〜20G)テキストファイルがあります。タイトルと段落は常にそれぞれ1行を占めています。例えば、

日光
の晴れた日。

の洞窟は暗い場所です。

私が考えようとしているのは、テキストを繰り返して各タイトルの前に ">"を追加するターミナルコマンドです。奇数行(ライン1、3、5...)たとえば、

>Sunshine
晴れた日でした。
>暗闇の
洞窟は暗い場所です。

どんなアイデアがありますか?

該当する場合:上記のテキストは単なる例です。ほとんどのヘッダーはMD5の後にDNA配列(「段落」)が続きます。

0002ebd9ca12d6b69dfc3066356fc299
CATTAACCATTGGATAACCTTCGGGTATCCCATCCGTGTCTACATACTCTTGTTGCTTTGGCAGGCCGTGGTCACACACTGTGGGCTATGCCTGCATGTGCCTGCCAGAGGACCA

...に変換しようとしています。

>0002ebd9ca12d6b69dfc3066356fc299
CATTAACCATTGGATAACCTTCGGGTATCCCATCCGTGTCTACATACTCTTGTTGCTTTTGGCAGGCCGTGGTCACACACTGTGGGCTATGCCTGCATGTGCCTGCCAGAGGACCA

答え1

GNUを使用して最初の行から始めて1行ずつ(または1行ずつ)編集するにはsed

sed '1~2秒/^/>/'あなたのファイル

これにより、変更されたファイルが標準出力に書き込まれます。つまり、入力するとただ上記で変更されたファイルが画面に表示されます。新しいファイルに入れるだけです出力リダイレクトたとえば>

sed '1~2秒/^/>/'あなたのファイル > 新しい文書

または、既存のファイルを変更するには、以下を使用します-i

sed-私「1~2秒/^/>/」あなたのファイル

答え2

POSIX的に:

sed 's/^/>/;n' < file.in > file.out

答え3

別のPOSIX回答:

paste -d'>\n' /dev/null - - <infile

得る:

>Sunshine
This is a sunny day.
>Darkness
A cave is a dark place.

答え4

awkこのようにしてみてください。

awk 'NR % 4 == 1 {sub(/^/,">")} {print}' filename

引用する

https://stackoverflow.com/questions/2099471/add-a-prefix-string-to-beginning-of-each-line

関連情報