Unixコマンドを使用して、ファイル内の>で始まる各行の末尾に単語を追加します。

Unixコマンドを使用して、ファイル内の>で始まる各行の末尾に単語を追加します。

fasta形式の〜25000のシーケンスを含むテキストファイルがあり、各行の末尾に>で始まる単語を追加したいと思います。

答え1

同じ単語を一致する行(themで始まる行>)に追加する必要があるかどうかを指定していないので、最も単純なケースを想定してください。次は、次sedから始まるすべての行の末尾に「PLOP」を追加します>

tmpFile=$(mktemp)
echo -e 'hello world\n>FASTA sequence\nhello again' > "$tmpFile"
echo 'BEFORE :'
cat "$tmpFile"
sed -ri '/^>/ s/^(.*)$/\1 PLOP/' "$tmpFile"
echo 'AFTER :'
cat "$tmpFile"
[ -f "$tmpFile" ] && rm "$tmpFile"

答え2

ソリューションアッ

awk '{ if ($0 ~ "^>") { $0=$0" added" }} {print $0}' list

またはsed

sed -E "s|^>(.+)$|>\1 added|" list

関連情報