tail: opción ilegal - error -53\r al usar head y tail en el mismo archivo en un solo script

tail: opción ilegal - error -53\r al usar head y tail en el mismo archivo en un solo script

estoy usando

a=`head -1 Rt.in` 

para obtener el primer valor de mi archivo y lo estoy guardando como una variable, luego estoy usando la misma variable para tail -$aseguir las últimas líneas de mi entrada. Pero me da error:

tail: illegal option -- -53\r.

Mi archivo de entrada tiene 4 columnas desde la tercera fila en adelante.

Aquí hay una parte del script que estoy usando:

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

y el error en el resultado que recibo es este:

tail: illegal option -- -53\r

Y la parte del archivo de entrada es la siguiente:

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
. 
.
.

Hay 53 líneas de este tipo.

¿Alguien puede decirme por qué recibo este error y cómo puedo eliminarlo?
Si ejecuto el script anterior usando tuberías directamente en la terminal, aparece un error tail: -: No such file or directoryy luego una lista de algunos átomos.

Respuesta1

El número de líneas no debe ser el parámetro, debería ser:

tail -n $a Rt.in

Ahora obtienes el número de últimas líneas definidas en la primera línea de tu archivo. Esto -ntambién debería usarse con su headcomando.

información relacionada