이것이 내가 명령을 사용하여 수행한 작업입니다 tail
. 파일을 화면에 출력하려고 하면 파일이 비어 있습니다.
~]$ tail > AFS2F1
PASSES ALL DATA FROM INPUT TO OUTPUT
PASSES ONLY SPECIFIED COLUMNS
PASSES NUMBER OF SPECIFIED LINES AT BEGINNING
COMBINES COLUMNS
ARRANGES DATA IN SEQUENCE
PASSES NUMBER OF SPECIFIED LINES AT THE END OF DATA
TRANSLATES ONE OR MORE CHARACTERS
DELETES DUPLICATE LINES
COUNTS CHARACTERS, WORDS, OR LINES
ABCDEFGHIJKLMNOPQRSTUVWXYZ
tail 명령을 사용하는 방식에 문제가 있습니까?
답변1
tail
마지막 10줄만 출력됩니다. 따라서 어쨌든 입력을 마쳤다고 알려주어야 출력할 줄(마지막 10줄)을 알 수 있습니다.
CTRL-C(대부분의 시스템에서 기본 문자 )을 누르면 intr
SIGINT 신호를 보내 종료됩니다. 종료할 때 입력의 끝을 보지 못했기 때문에 아무것도 쓸 기회가 없었기 때문에 아무것도 출력하지 않고 종료됩니다.
이것단말기입력의 종료를 나타냅니다(단자가 있는 경우).모델모드)는 빈 줄에 문자를 입력하는 것입니다 eof
(대부분의 시스템에서 기본값).Ctrl-D
그런 다음 tail
입력 끝에 도달했는지 여부를 감지하고 수신된 마지막 10개 라인을 출력합니다.
답변2
예, 다음 사항에 대한 입력을 제공해야 합니다 tail
.
tail file > newfile
STDIN을 사용하려는 경우:
cat file | tail > newfile
또는
head > new_file < file
또는
tail > AFS2F1<<EOF
PASSES ALL DATA FROM INPUT TO OUTPUT
PASSES ONLY SPECIFIED COLUMNS
PASSES NUMBER OF SPECIFIED LINES AT BEGINNING
COMBINES COLUMNS
ARRANGES DATA IN SEQUENCE
PASSES NUMBER OF SPECIFIED LINES AT THE END OF DATA
TRANSLATES ONE OR MORE CHARACTERS
DELETES DUPLICATE LINES
COUNTS CHARACTERS, WORDS, OR LINES
ABCDEFGHIJKLMNOPQRSTUVWXYZ
EOF
답변3
문제는 tail
프로그램이 조건을 얻을 때까지 입력 파일을 버퍼링한 eof
다음 마지막 몇 줄(기본적으로 10줄)을 인쇄한다는 것입니다. 아마도 당신은 ctrl-c
그것을 종료하는 조합으로 그것을 방해할 가능성이 크며, 따라서 꼬리는 수집된 줄을 인쇄할 기회가 없습니다. ctrl-d
반대 방향으로 수행하면 end-of-file
마지막에 입력 스트림에 문자를 효과적으로 보내므로 수집된 행이 인쇄됩니다.