Para numerar linhas, você pode usar nl
. Para remover colunas (ou, em vez disso, filtrar as que você deseja manter), você pode usar cut
:
$ cut -f 2- cols.txt | nl
1 0 chr1 3000575 3000801 0 chr1 4340023 4340249 32 32
2 0 chr1 3000641 3000801 -1 chr1 3311943 3311783 32 32
3 0 chr1 3000674 3000801 -1 chr1 3001534 3001407 32 32
4 0 chr1 3000674 3000801 -1 chr1 3001534 3001407 32 32
5 0 chr1 3000674 3000801 -1 chr1 3001534 3001407 32 32
A única coisa incômoda com nl
é que ele insere preenchimento de espaço no início da linha (por padrão, o campo de número de linha tem 6 caracteres de largura e você não deseja diminuir isso porque truncaria números de linha). Podemos nos livrar disso assim:
$ cut -f 2- cols.txt | nl | sed 's/^ *//'
1 0 chr1 3000575 3000801 0 chr1 4340023 4340249 32 32
2 0 chr1 3000641 3000801 -1 chr1 3311943 3311783 32 32
3 0 chr1 3000674 3000801 -1 chr1 3001534 3001407 32 32
4 0 chr1 3000674 3000801 -1 chr1 3001534 3001407 32 32
5 0 chr1 3000674 3000801 -1 chr1 3001534 3001407 32 32
O utilitário cut
obtém uma lista de colunas que você deseja "cortar" da entrada. No nosso caso, são as colunas 2 e seguintes ( -f 2-
). Como seus dados são delimitados por tabulação, cut
fará isso sem modificação, caso contrário, é possível dizer a ele para usar outro delimitador com -d
.
O comando sed
simplesmente substituirá esses espaços no início da linha de nl
com nada.