
답변1
다음 실험을 시도해 보세요.
- 25개의 행이 있는 터미널을 엽니다.
- 달리다
seq 1 1 100 > test_text
. - 달리다
more test_text
. - 화면에서 마지막 줄 이전을 살펴보세요. 그것은 말할 것입니다
24
. - f다음을 누르 세요.건너뛰다페이지.
- 화면의 첫 번째 줄을 보세요. 그것은 말할 것입니다
49
.
f텍스트 페이지를 건너뜁니다. 따라서 파일의 첫 번째 "페이지"를 보고 을 누르면 f세 번째 페이지가 표시됩니다.
이때 다시 누르면 파일의 마지막 4줄이 f보입니다 . 다섯 번째 페이지를 표시할 줄이 충분하지 않기 때문에 종료됩니다.... skipping 24 lines
more
대신 다시 사용해 보세요 space. space페이지를 건너뛰지 않습니다. 모든 페이지가 표시됩니다.
편집하다
이 답변은 more version 5.19 (Berkeley 6/29/88), which is currently in use in the Linux community
(참조사람이 더 많아). @Kusalananda가 보고한 것처럼 "실험"의 결과는 버전/유니스에 따라 다를 수 있습니다.
line
와 의 차이점row of text on a terminal
종종 이 두 가지 정의는 서로 바꿔 사용할 수 있습니다. 이 경우 구별하는 것이 중요합니다.
- 줄은 개행 문자(문자
\n
)로 끝나는 텍스트 파일의 일련의 문자입니다.wc -l
명령은 파일의 줄 수를 계산합니다. 선의 길이는 0에서 무한대 사이의 숫자일 수 있습니다. - 터미널의 텍스트 행은 터미널에 표시되는 일련의 문자입니다. 터미널 폭의 길이가 고정되어 있습니다.
내 첫 번째 "실험"은 너무 간단했습니다. 모든 줄은 (확실히) 행보다 짧았습니다.
파일에서 아마도 행이 행보다 훨씬 길 것입니다. 이를 표시하기 위해 more
각 행을 여러 행으로 배열합니다.
새로운 실험을 시도해 보겠습니다.
example
다음 내용으로 파일을 만듭니다 .006 XX\n010 XXYYYY\n015 XXYYYYZZZZZ\n
3줄짜리 파일입니다. 각 줄의 길이는 6자, 10자, 15자 순서입니다. 숫자 뒤의 공백을 계산하는 것을 잊지 마십시오.
달리다
wc -l example
. 3이 그 결과이다.8열 터미널에서는 다음과 같은 내용을 볼 수 있습니다.
006 XX 010 XXYY YY 015 XXYY YYZZZZZ
첫 번째 행의 길이는 8자입니다.
006
+ 공백 +XX
+ 공백 2개입니다.두 번째 행은 8자 길이입니다:
010
+ 공백 +XXYY
.세 번째 행의 길이는 8자(
YY
+8 공백)입니다.기타 등등
3줄의 텍스트가 이제 5줄의 텍스트가 되었습니다.
매뉴얼 페이지는 다음과 같이 more
말합니다.
f Skip forward k screenfuls of text. Defaults to 1.
이는 more
터미널의 모든 행을 채우기 위해 너무 많은 텍스트 줄을 건너뛰게 된다는 것을 의미합니다.
답변2
하지만
...skipping 29 lines
파일이 표시된 다음 닫히고 프롬프트가 반환됩니다.
를 누르고 f
문서의 끝에 도달하면 이런 일이 발생합니다.
예를 들어, 40줄의 파일이 있고 을 수행하면 more myfileof60lines.txt
첫 번째 29줄이 표시되고 을 누르면 f
다음 29줄을 건너뛰지만 그 전에는 문서의 끝에 도달합니다. 따라서 을 보게 되고 , 문서의 끝에 도달하면 프롬프트로 돌아가는 ...skipping 29 lines
정상적인 동작을 하게 됩니다.more