tail: ungültige Option -- -53\r Fehler bei der Verwendung von head und tail für dieselbe Datei in einem einzigen Skript

tail: ungültige Option -- -53\r Fehler bei der Verwendung von head und tail für dieselbe Datei in einem einzigen Skript

ich benutze

a=`head -1 Rt.in` 

um den ersten Wert aus meiner Datei zu erhalten und ihn als Variable zu speichern, verwende ich dieselbe Variable, um die tail -$aletzten Zeilen meiner Eingabe zu beenden. Aber es wird ein Fehler ausgegeben:

tail: illegal option -- -53\r.

Meine Eingabedatei hat ab der dritten Zeile 4 Spalten.

Hier ist ein Teil des Skripts, das ich verwende:

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

und der Ausgabefehler, den ich erhalte, ist dieser:

tail: illegal option -- -53\r

Und der Teil der Eingabedatei ist wie folgt:

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

Es gibt 53 solcher Zeilen.

Kann mir jemand sagen, warum ich diesen Fehler bekomme und wie ich ihn beheben kann?
Wenn ich das obige Skript mithilfe von Pipes direkt im Terminal ausführe, erhalte ich den folgenden Fehler tail: -: No such file or directoryund dann eine Liste mit einigen Atomen.

Antwort1

Der Parameter sollte nicht die Zeilenanzahl sein, sondern:

tail -n $a Rt.in

Jetzt erhalten Sie die Anzahl der letzten Zeilen, die in der ersten Zeile Ihrer Datei definiert ist. Dies sollte auch mit Ihrem Befehl -nverwendet werden .head

verwandte Informationen