터미널에서 클립 보드로 여러 페이지 텍스트를 복사하는 방법은 무엇입니까?


13

내 컴퓨터에서 소프트웨어 의 매뉴얼 페이지를 보고 있었는데 해당 텍스트 중 일부를 복사하여 붙여 넣어야했지만 텍스트가 한 페이지 이상이었습니다. 출력을 파일로 보내고 gedit 와 같은 UI 기반 소프트웨어를 사용 하여 필요한 텍스트를 복사 할 수 있다는 것을 알고 있습니다 . 그러나 이것은 터미널에서 할 수 있습니까?

Joseph 은 명령 줄 방법을 제안했습니다 (작은 약간 복잡하지만 Linux에서는 정규 표현식이 아직 좋지 않습니다). 그러나 마우스를 사용하여 터미널에있는 동안 그렇게 할 수있는 방법이 있는지 궁금합니다 .

나는 일반적인 대답을 얻길 희망하지만 우분투를 사용하고 있습니다.

답변:


9

나는 불완전하지만 유용한 아이디어가 몇 가지 있습니다.

방법 1-마우스

터미널 스크롤바를 사용하십시오.

세부 사항 (가정 xterm; 다른 터미널에 대해서는 조정이 필요합니다.)

  1. 스크롤바가 없으면 활성화하십시오. ( xterm의 메뉴에는 Ctrl + Button2가 있습니다.)
  2. 확인하십시오 less-c옵션으로 실행되지 ( LESS환경 변수 에서이 옵션을 사용하도록 설정 했지만 현재 수행중인 작업을 방해하므로 사용하지 않으려면 입력 -c해야합니다).
  3. 원하는 less명령을 사용하여 위 또는 아래로 스크롤하여 복사하려는 첫 번째 줄이 화면에 표시되도록합니다.
  4. triple-Button1 선택한 출발 선을 선택하십시오.
  5. 복사하려는 마지막 행이 화면에 표시 될 때까지 아래로 스크롤하십시오. 스페이스 바 또는 다른 간단한 스크롤 키만 사용해야하며/검색이 여기서 요점은 less모든 행을 터미널로 보내서 복사 할 수 있도록하는 것입니다.
  6. 선택한 엔드 라인의 Button3을 눌러 선택을 확장합니다.

가능한 어려움 : 스크롤 백 버퍼가 충분히 크지 않을 수 있습니다. 즉에서 변경 될 수 있습니다 xtermsaveLines 자원 또는 -sl명령 줄 옵션,하지만 난 이미 실행중인 한텀을 변경하는 방법을 알고하지 않습니다.

방법 2-마우스 없음.

|(pipe) 명령을 사용하여 less텍스트를 보내십시오.xclip .

세부:

  1. 원하는 less명령을 사용하여 위 또는 아래로 스크롤하여 마지막 위치를 지정하십시오. 하여 복사하려는 줄을 화면 상단에 놓습니다. 끝까지 복사하려면이 단계와 다음 단계를 건너 뛸 수 있습니다.
  2. 사용 m선택한 최종 위치에 마크를 설정 (표시) 명령을 사용합니다. 마크는 그 자체로 유용한 기능이며,에서 이미 알고 있어야 vi하지만, 그렇지 않은 경우를 대비 mx하여 : 마크를 x설정할 수 있습니다 'x.
  3. 이제 복사하려는 첫 번째 줄이 화면 상단에 오도록 위로 스크롤하십시오.
  4. pipe 명령 |x을 사용하면 외부 명령을 입력하라는 프롬프트가 나타납니다. 는 x당신이에서 사용되는 동일한 마크 편지해야한다 m, 또는 명령 $"모든 방법을 끝까지"에 대한합니다. xclip거기에 입력하십시오 .

전체 매뉴얼 페이지를 복사하는 간단한 경우는로 줄어 듭니다 g|$xclipEnter.

경고 (즉 , 나에게 일어난 끔찍한 일 ) : 프로세스 그룹의 xclip일부로 실행되는 반 배경 화 less됩니다. 일시 중지하려고 less하면 같은 터미널에서 다른 작업을 시작하여 붙여 넣으면 작동하지 않습니다. 그런 다음 나중에 man/ less작업을 포 그라운드로 설정하면 갑자기 붙여 넣기가 이루어집니다. 나는 이것이 xclip버그 로 간주되어야한다고 생각합니다 ...


2
Mac 사용자는 xclip이 설치되어 있지 않은 경우 pbcopy를 사용할 수 있습니다.
Mike Hedman

3

터미널 등 다중 화기 tmux또는 screen일반적으로 이런 기능 (예 : 일부 명령에 파일 또는 파이프를로 스크롤 백 버퍼의 일부를 저장하는) 당신이 그 중 하나에보고하도록 할 수 있습니다, 그래서 그들을 사용하는 것은, 어쨌든 일반적으로 좋은 아이디어이다가 .


2

Nixcraft에 설명 된대로 :

  1. 입수 xclip:

    sudo apt-get install xclip 
    

    또는

    yum install xclip
    

    RPM 기반 시스템에서.

  2. man man | your_magic_here | xclip -selection clipboard
  3. Ctrl+ V당신의 마음의 내용에. -selection clipboard대신 마우스 가운데 클릭으로 붙여 넣기를 선택하여 제거 할 수 있습니다 (기본 선택).

참고 your_magic_here텍스트 필터에 대한 자리 표시 자 (인 sed/ awk/ perl/ ...) 난 두려워 있도록 설명하지 않은 사람이 페이지의 원하는 부분이 특정 유스 케이스에 따라 선택이 내가 할 수없는 특정 예를 들어.


그렇다 xclip가도 xsel(및 기타). 이 클립 보드 토론을 보고 싶을 수도 있습니다 .
peterph

마우스를 사용하여 그렇게 할 수 있습니까? 마우스가 페이지 끝에 도달하면 페이지가 스크롤됩니다.
Muhammad Gelbana

0

터미널 프로그램에 따라 다르지만 대부분의 터미널 프로그램에는 선택한 텍스트를 저장하는 기능이 없습니다.

LXTerminal, uxterm, Konsole 및 GNOME Terminal 모두이 '기능'이 부족한 것 같지만 다른 기능이있을 수 있습니다. 터미널 프로그램의 메뉴 구조를보고 "선택된 저장"과 같은 것이있을 수 있습니다.


0

사용 gnome-terminal하고 less호출기로 가정하면 다음 을 수행 man할 수 있습니다.

  • 실행 less을 위해 man-X예를 들어, 비활성화 다른 화면으로 키 :LESS=-X man less

이를 통해 man터미널 에뮬레이터 기록 버퍼에 출력을 추가 할 수 있습니다. 자세한 내용은 /unix//a/38638/87918 에서이 답변을 참조 하십시오 .

  • 복사하려는 텍스트의 마지막 페이지로 스크롤하십시오. (스크롤하는 동안 스크롤 된 모든 텍스트는 히스토리 버퍼에 저장됩니다)
  • 마우스 gnome-terminal를 마지막 페이지부터 시작하여 마우스를 사용하여 창 위쪽 가장자리로 드래그하여 텍스트를 선택하십시오 . 자세한 텍스트 선택 과정은 다음과 같습니다 .

그놈 터미널에서는 작동하지 않습니다. 대신 마우스 왼쪽 버튼으로 선택을 시작하고 마우스 커서를 창 가장자리 (또는 창 바깥 쪽)로 끕니다. GT는 당신을 위해 물건을 스크롤하여 프로세스에서 선택을 확장합니다. GT의 스크롤링은 충분히 빠르기 때문에 xterm보다 상당히 편리하고 직관적 인 프로세스입니다.

  • 이제 원하는 위치에 복사하여 붙여 넣을 수있는 텍스트 (원하는 페이지)를 선택했습니다.

0

| (파이프) 명령은 Wumpus Q. Wumbley가 두 번째 옵션 으로 대답했지만 마크를 사용하지 않고 tee를 사용하여 이미 존재하는 기존 파일에 추가하여 리디렉션합니다.

|tee >> ~/helpaggregator.txt

새로운 명령을 배울 때 일반적으로 상담해야 할 필요가 있고 기존 파일을 통합 된 상태로 유지하기를 원하므로 기존 파일을 제안합니다. 또한 탭 완성이 편리합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.