![터미널에서 실행되지 않도록 "클립보드"에서 후행 새 줄을 제거하시겠습니까?](https://linux55.com/image/51546/%ED%84%B0%EB%AF%B8%EB%84%90%EC%97%90%EC%84%9C%20%EC%8B%A4%ED%96%89%EB%90%98%EC%A7%80%20%EC%95%8A%EB%8F%84%EB%A1%9D%20%22%ED%81%B4%EB%A6%BD%EB%B3%B4%EB%93%9C%22%EC%97%90%EC%84%9C%20%ED%9B%84%ED%96%89%20%EC%83%88%20%EC%A4%84%EC%9D%84%20%EC%A0%9C%EA%B1%B0%ED%95%98%EC%8B%9C%EA%B2%A0%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
일종의 필터를 통해 "클립보드"에 복사한 항목을 실행하는 방법이 있습니까? 이상적으로는 복사한 내용에서 후행 개행 문자를 제거하여 터미널에서 자동으로 실행되지 않도록 하시겠습니까?
관련 테스트를 복사하면 이런 모습인데, 가끔 새 줄이라는 것을 잊어버릴 때도 있습니다.
답변1
좋은 최신 터미널 지원괄호 안에 붙여넣기: 터미널의 붙여넣기 명령을 사용하면 클립보드 내용 주위에 특수 이스케이프 시퀀스가 전송됩니다. 쉘이 대괄호 붙여넣기를 지원하는 경우 제어 문자를 포함하여 클립보드 내용을 있는 그대로 붙여넣고 특히 후행 줄 바꿈은 명령 실행을 트리거하지 않습니다.
Zsh ≥5.1은 대괄호 붙여넣기를 지원하며 기본적으로 켜져 있습니다. 구 버전가르칠 수 있다. Bash ≥4.4는 추가하는 경우 대괄호 붙여넣기를 지원합니다.set enable-bracketed-paste on
도착하다 ~/.inputrc
.
터미널이나 셸이 대괄호 붙여넣기를 지원하지 않는 경우 후행 줄 바꿈 없이 붙여넣는 셸 함수를 정의할 수 있습니다.
zsh에서 다음 명령은 후행 개행 문자를 뺀 클립보드의 내용을 가져와 편집할 수 있도록 표시합니다(여러 줄이 있는 경우에도).
print -z -- "`xsel -b`"
Bash에서는 클립보드의 내용에서 후행 개행 문자를 뺀 내용을 기록 스택에 푸시할 수 있습니다. 그런 다음 Up불러오기 명령을 눌러 편집하세요.
history -s -- "`xsel -b`"
답변2
예, cat
파일에 붙여넣으려면 원하는 대로 수행한 다음 실행하세요.
이 예의 경우:
$ cat > tmp
[paste][Ctrl+D]
$ tr -d '\n' <tmp | xclip # this remove all "new line" characters
# and copy back to clipboard
답변3
버전 0.13(2016-09년 출시)부터 정확히 필요한 작업을 수행하는 xclip
문서화되지 않은 옵션이 있는 것 같습니다 . 즉, 텍스트에서 마지막 개행 문자를 제거하는 것입니다. -r
바라보다https://github.com/astrand/xclip/issues/7. 적어도 Ubuntu 22.04에서는 작동합니다.
답변4
@RSFalcon7 답변에서 영감을 받아 한 줄로 할 수 있다는 것을 깨달았습니다.
다음을 사용하여 xsel
기본 선택 항목으로 복사
cat | tr -d '\n' | xsel
[paste], 2 times[Ctrl-D]