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 -$a
letzten 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 directory
und 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 -n
verwendet werden .head