터미널에서 긴 한 줄의 텍스트를 복사하고 원치 않는 변경 줄을 포함합니다.

터미널에서 긴 한 줄의 텍스트를 복사하고 원치 않는 변경 줄을 포함합니다.

locate ... | less실제로는 한 줄이지만 터미널에서는 여러 줄로 나타나는 긴 경로를 출력합니다.

Ctrl마우스로 텍스트를 선택하고 +를 클릭하여 Shift터미널에서 경로를 복사했습니다 C. 이것을 텍스트 파일에 붙여 넣으면 터미널에 나타나는 것과 똑같은 방식으로 텍스트에 원치 않는 변경된 줄이 나타납니다.

그러나 원치 않는 행 변경 없이 출력에서 ​​생성된 긴 경로를 복사할 수 있는 경우도 locate ... | less있고 그렇지 않은 경우도 있다는 것을 기억합니다. 제가 다른 일을 했는지는 모르겠습니다.

그렇다면 문제가 발생하지 않도록 하는 방법이 궁금합니다. 감사해요!

내 운영 체제: Ubuntu 12.04.

내 터미널: Gnome Terminal 3.4.1.1

답변1

실제 동작은 다음과 같습니다.

거기에 less매우 긴 줄이 있는 파일이 있는 경우 긴 줄을 아래로 스크롤하고 위로 스크롤하면 전체 텍스트를 복사할 때 여러 줄이 표시됩니다. 나중에 구분선을 터미널 하단까지 아래로 스크롤했다가 다시 위로 스크롤하면 줄 바꿈이 다시 제거됩니다.

시각화의 경우:

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

답변2

당신은 할 수복사출력 라인추가 개행 없음(개행 문자) 텍스트가 다음과 같은 경우직접 출력터미널로 가세요.
터미널은 실제 라인이 끝나는 위치를 추적할 수 있습니다.

그러나 이러한 행이 less유사한 pager프로그램에 의해 출력되는 경우 터미널은 개행 문자가 어디에 있는지 알 수 없습니다. 호출기는 터미널을 전체 화면 문자로 사용하고 터미널에 "이 문자를 거기에 넣으세요"라고 지시할 뿐만 아니라 스크롤과 같은 작업도 수행합니다. 그러나 터미널에서는 개행문자가 무엇에 사용되는지 확인할 수 있는 방법이 없습니다.

답변3

터미널에 표시되는 내용(화면에 맞는 내용)을 복사하지 말고 실제 텍스트를 복사하세요. 외부 유틸리티 중 하나를 사용하십시오.셰르또는클립(대부분 동일한 기능을 가지고 있습니다. 이 답변에서는 xsel을 사용하겠습니다.) X 클립보드에서/로 데이터를 복사합니다. 클립보드에 복사하려면 원하는 내용을 표준 입력으로 전달하세요. 클립보드에서 붙여넣으면 내용이 표준 출력에 기록됩니다.

Less에서는 이 |명령을 사용하여 명령을 통해 여러 줄을 파이프합니다. 작업을 수행하려는 첫 번째 줄로 스크롤하고, 입력하여 mm표시를 설정하고, 마지막 줄로 스크롤한 다음, 입력 |mxsel -b하고 를 누릅니다 Enter. ^파일 시작 부분과 $파일 끝 부분에 대한 두 개의 마커가 미리 정의되어 있습니다 . 따라서 전체 파일을 복사하려면 를 사용하십시오 <|$xsel -b. 한 줄을 복사하려면 mm|mxsel -b및 를 사용하십시오 Enter.

-b클립보드 대신 기본 선택 항목으로 복사하는 옵션이 제거되었습니다 .

답변4

목표가 복사하여 붙여넣는 것이라면 cat대신 또는 를 사용하고 터미널은 표시될 때가 아닌 실제 그대로 캡처합니다.lessmore

관련 정보