何百万ものタイトルを含む段落(別名段落)を含む巨大な(〜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