tail: opção ilegal - -53 \ r erro ao usar a cabeça e cauda no mesmo arquivo em um único script

1

Estou usando

a='head -1 Rt.in' 

para obter o primeiro valor do meu arquivo e estou salvando-o como uma variável, então estou usando a mesma variável para tail -$a para seguir as últimas linhas da minha entrada. Mas está dando um erro:

tail: illegal option -- -53\r.

Meu arquivo de entrada tem 4 colunas da terceira linha em diante.

Aqui está uma parte do script que estou usando:

a='head -1 Rt.in'
echo $a
tail -$a Rt.in

e o erro na saída que estou recebendo é este:

tail: illegal option -- -53\r

E a parte do arquivo de entrada é a seguinte:

53
FEPXUU
H    9.155963    1.289174   11.531518
H    9.004353    2.726286   11.683448
N   11.762550    3.890769   11.785241
N   10.610393    3.635048    9.544268
N   10.745642    1.175050    9.076323
N   13.210069    2.309946    9.848128
N   12.319480    0.955257   11.800435
C   12.359945    3.942548   12.929277
C   11.267322    5.027779   11.274755
H    9.052185    4.031311    6.865735
C   10.031631    3.303244    8.416945
C   10.093512    1.894663    8.164740
C    9.546565    1.312421    7.090592
. 
.
.

Existem 53 linhas desse tipo.

Alguém pode me dizer por que estou recebendo esse erro e como posso removê-lo?
Se eu rodar acima do script usando pipes diretamente no terminal estou recebendo erro como tail: -: No such file or directory e, em seguida, lista de poucos átomos.

    
por dking 04.11.2015 / 11:32

1 resposta

1

O número de linhas não deve ser o parâmetro que deve ser:

tail -n $a Rt.in

Agora você obtém o número de últimas linhas definido na primeira linha do seu arquivo. Esse -n também deve ser usado com o comando head .

    
por 04.11.2015 / 11:40