Adicionando um número como sufixo a várias colunas

1

Eu tenho dados parecidos com:

chr1    enhancer_   875557  876449  .   enhancer_
chr1    enhancer_   876970  877622  .   enhancer_
chr1    enhancer_   995719  996320  .   enhancer_
chr1    enhancer_   1142786 1143060 .   enhancer_

Eu gostaria de adicionar números crescentes às extremidades das colunas 2 e 6 usando o awk. Então, a saída ficaria assim:

chr1    enhancer_1  875557  876449  .   enhancer_1
chr1    enhancer_2  876970  877622  .   enhancer_2
chr1    enhancer_3  995719  996320  .   enhancer_3
chr1    enhancer_4  1142786 1143060 .   enhancer_4

Passei boa parte do tempo procurando, mas não consegui fazer isso.

    
por System 23.02.2016 / 22:42

2 respostas

2

solução 1:

awk '{print $1 " " $2 NR " " $3 " " $4 " " $5 " " $6 NR}' yourfile.txt

solução2:

awk'{$2=$2NR;$6=$6NR;print}'yourfile.txt

sequenciadorparacadasubstituição

casovocêprefirasequenciarcadasubstituição,umaversãoemperl

perl-pe's/enhancer_/$&.++$n/ge'yourfile.txt

    
por 23.02.2016 / 23:45
2

Isso só insere números e mantém espaços de linhas extras do seu exemplo.

awk '{gsub(/enhancer_/,"enhancer_"NR); print;}'  fileinput.txt

saída:

chr1    enhancer_1   875557  876449  .   enhancer_1
chr1    enhancer_2   876970  877622  .   enhancer_2
chr1    enhancer_3   995719  996320  .   enhancer_3
chr1    enhancer_4   1142786 1143060 .   enhancer_4
    
por 24.02.2016 / 02:56

Tags