f를 사용하여 추가 호출기에서 앞으로 탐색

f를 사용하여 추가 호출기에서 앞으로 탐색

k 화면 전체를 건너뛰는 데 사용되는 맨 페이지에 나와 있습니다(기본값은 1). 매우 긴 파일을 사용하여 저장 more하고 페이지 별로 화면에 표시하는 데 사용했지만 첫 번째 페이지를 눌렀을 때 자체적으로는 앞으로 탐색하지 않지만 표시된 다음 파일이 닫히고 프롬프트가 반환됩니다. 탐색하려고 하면 예상대로 제대로 작동합니다. 파일 길이가 충분히 길기 때문에 매번 1페이지를 건너뛰어 앞으로 이동해야 합니다. 왜 그렇게 다른 행동을 보이는 걸까요?fcatmoref... skipping 29 linesspacebar

여기에 이미지 설명을 입력하세요

답변1

다음 실험을 시도해 보세요.

  • 25개의 행이 있는 터미널을 엽니다.
  • 달리다 seq 1 1 100 > test_text.
  • 달리다 more test_text.
  • 화면에서 마지막 줄 이전을 살펴보세요. 그것은 말할 것입니다 24.
  • f다음을 누르 세요.건너뛰다페이지.
  • 화면의 첫 번째 줄을 보세요. 그것은 말할 것입니다 49.

f텍스트 페이지를 건너뜁니다. 따라서 파일의 첫 번째 "페이지"를 보고 을 누르면 f세 번째 페이지가 표시됩니다.

이때 다시 누르면 파일의 마지막 4줄이 f보입니다 . 다섯 번째 페이지를 표시할 줄이 충분하지 않기 때문에 종료됩니다.... skipping 24 linesmore

대신 다시 사용해 보세요 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

관련 정보