쉘 명령을 사용하여 개행 제거(KDE 전역 단축키에서 작동해야 함)

쉘 명령을 사용하여 개행 제거(KDE 전역 단축키에서 작동해야 함)

현재 선택 항목의 텍스트에서 개행 문자를 제거하는 바로가기가 필요합니다. 나는 이미 방법을 알고 있는 KDE 전역 단축키에 명령을 입력하고 싶습니다. 내가 생각해낸 명령은 다음과 같다.

sh -c 'xclip -o -sel p | tr -d "\-\n"  | tr "\n" "\ " | xclip -sel c; xdotool key --clearmodifiers ctrl+v'

이는 현재 선택 항목을 파이프로 연결하여 tr줄 끝 하이픈을 제거하고 조각을 결합한 다음 나머지 줄 바꿈을 공백으로 바꾼 다음 이를 클립보드에 넣고 붙여넣기 위한 것입니다(포커스가 있는 곳에). ).

문제: 개행 문자를 공백으로 바꾸지 않습니다. tr "\n" "\ ". 그렇게 하는 대신 개행 문자를 아무것도 대체하지 않습니다. 나는 공간에 대한 모든 종류의 표현을 시도했지만 그 중 아무것도 작동하지 않았습니다.

나는 시도했지만 xdotool type모든 공백을 먹고 를 사용하지 않고도 모든 것을 함께 실행합니다 tr.

클립보드 대신 선택 항목(기본 또는 보조)을 사용하고 xdotool key ctrl+v가능하면 사용하지 않는 것을 선호합니다. xdotool내 경험상 공백을 처리하는 예상치 못한 방식으로 인해 완전히 피할 수 있다면 더 좋습니다 .

저는 설치하지 않았 xvkbd으며 설치하지 않는 것을 선호합니다. 하지만 도움이 된다면 설치할 수 있습니다.카피,파이썬-pyperclip, 또는xorg-xclipboard. 또한 주요 Arch 저장소에 있는 다른 도구도 고려할 수 있습니다.

답변1

내가 생각해낸 내용은 다음과 같습니다.

sh -c 'xclip -o -sel p | perl -p -e "s/-\n//g"|  tr "\n" " "| xclip -sel c; xdotool key --clearmodifiers ctrl+v'

나는 첫 번째를 trPerl로 대체했습니다. 나는 그것이 문자열이 아닌 두 개의 독립적인 문자로 tr시퀀스를 보고 있다는 것을 깨달았습니다.-\n

여기에서 Perl 제안을 찾았습니다.
https://stackoverflow.com/a/7697604/463994

아마도 단일 Perl 명령으로 이를 수행할 수 있는 방법이 있을 것입니다. 그러나 나는 그것을 모릅니다. 더 나은 답변을 받아 들일 것입니다.

편집 : 여기 있습니다더 나은 솔루션, Rakesh Sharma에게 감사드립니다(댓글 참조):

sh -c 'xclip -o -sel p | perl -pe "s/-\n// || s/\n/ /" | xclip -sel c; xdotool key --clearmodifiers ctrl+v; xdotool key Alt'

xdotool key AltAlt 키 콤보에 바인딩된 단축키가 있고 Alt 키를 지우는 데 필요하기 때문에 추가했습니다 .

관련 정보