Я использую
a=`head -1 Rt.in`
чтобы получить первое значение из моего файла и сохранить его как переменную, затем я использую ту же переменную, чтобы tail -$a
вывести последние строки из моего ввода. Но это выдает ошибку:
tail: illegal option -- -53\r.
Мой входной файл содержит 4 столбца, начиная с третьей строки.
Вот часть скрипта, который я использую:
a=`head -1 Rt.in`
echo $a
tail -$a Rt.in
и ошибка в выводе, которую я получаю, такая:
tail: illegal option -- -53\r
А часть входного файла выглядит следующим образом:
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
.
.
.
Всего таких строк 53.
Может кто-нибудь сказать мне, почему я получаю эту ошибку и как ее убрать??
Если я запускаю вышеуказанный скрипт, используя каналы непосредственно в терминале, я получаю ошибку, tail: -: No such file or directory
а затем список из нескольких атомов.
решение1
Количество строк не должно быть параметром, которым оно должно быть:
tail -n $a Rt.in
Теперь вы получаете количество последних строк, которое определено в первой строке вашего файла. Это -n
также должно использоваться с вашей head
командой.