※プログラミングレベルは高くないので、より良い方法があれば教えてください
#概要
複数のサンプルのfasta/fastqを1つのファイルにまとめてしまった後に、ヘッダーを修正したいときのためのシェルスクリプト。
テキストの置換件数が多いため、参照となるリストファイルを作成し、一度に複数のテキスト置換を行う。
参考:FASTQ Filesのフォーマット
http://support.illumina.com/content/dam/illumina-support/help/BaseSpaceHelp_v2/Content/Vault/Informatics/Sequencing_Analysis/BS/swSEQ_mBS_FASTQFiles.htm
#コマンド
xargsを用いたワンライナーを教えてもらいました(2017/9/2更新)
sed 's/\([^\t]*\)\t\(.*\)/s|\1|\2|g/' rename.list | xargs -I{} sed -i '{}' test.fna
旧シェルスクリプト
#!/bin/bash
list="rename.list"
file="test.fna"
# 行数分のループを回す
seq=`cat $list | wc -l`
for i in `seq $seq`
do
name=`cat $list | awk -F'\t' "NR==${i}" | cut -f1`;
rename=`cat $list | awk -F'\t' "NR==${i}" | cut -f2 `;
sed -i "s/$name/$rename/g" $file
done
#ファイル
##rename.list
AAA-BBB-CCC_S1 AAA-BBB-CCC-1_S1
AAA-BBB-CCC_S2 AAA-BBB-CCC-2_S2