tail: 잘못된 옵션 -- 단일 스크립트에서 동일한 파일에 head와 tail을 사용하는 동안 -53\r 오류가 발생했습니다.

tail: 잘못된 옵션 -- 단일 스크립트에서 동일한 파일에 head와 tail을 사용하는 동안 -53\r 오류가 발생했습니다.

나는 사용하고있다

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.

관련 정보