Eu tenho um script de shell que faz algumas coisas, como armazenar valores em uma variável. Como exemplo aqui está o meu script:
for i in ../../*.bam
do
fn=$(basename $i)
fn=${fn%_Aligned.sortedByCoord.out.bam}
bamToBed -i $i | awk -v OFS="\t" '{if($6 ~ /+/){print $1,$2+67,$2+67+1,$4,$5,$6}else{print $1,$3-67-1,$3-67,$4,$5,$6}}' | awk -v OFS="\t" '$3 > 0' > ${fn}_pos.bed
sortBed -g $genome -i ${fn}_pos.bed > ${fn}_n_pos.bed
mv ${fn}_n_pos.bed ${fn}_pos.bed
perl counter.pl ${fn}_pos.bed | sortBed -g $genome -i stdin | intersectBed -g $genome -sorted -a <(cat $genome | awk -v OFS="\t" '{print $1,"0",$2}') -b stdin -wa -wb | cut -f 4-7 > ${fn}.bedGraph
bedGraphToBigWig ${fn}.bedGraph $genome ${fn}.bw
a=`samtools view $i | wc -l`
intersectBed -g $genome -sorted -c -a <(cat test.bed | awk -v OFS="\t" '{print $1,$2-50,$2+400,$4,$5,$6}') -b ${fn}_pos.bed | cut -f 4,7 | awk -v OFS="\t" '{print $1,$2,$a}'> ${fn}_IP_count.txt
cat ${fn}_IP_count.txt | awk -v OFS="\t" '{print $1,$2,$a}' > final.txt
done
Como você pode ver esta linha no código onde eu declarei uma variável a
. Isso armazena um número. Então eu criei um arquivo de texto de 2 colunas, delimitado por tabulação ${fn}_IP_count.txt
Eu quero adicionar uma terceira coluna neste arquivo onde a terceira coluna é o valor armazenado na variável a
para cada linha. Como exemplo, o arquivo de 2 colunas se parece com isso:
gene1 200
gene2 23
gene3 45
gene4 10
Digamos que o valor armazenado na variável a seja 245676, então eu quero que a saída seja armazenada na terceira coluna assim
gene1 200 245676
gene2 23 245676
gene3 45 245676
gene4 10 245676
Eu tentei usando awk, mas não estou recebendo a resposta certa. Qualquer ajuda seria apreciada.
Você passa outras variáveis da mesma forma que está passando
OFS
, usando-v
Ex.