클립보드 텍스트 가져오기 및 하이픈 제거

클립보드 텍스트 가져오기 및 하이픈 제거

저는 Mac OS 10.9를 실행하고 있으며 Text to Speech단축키를 사용하여 모든 응용 프로그램에서 선택한 텍스트를 읽을 수 있는 기능을 사용하고 있습니다. 저는 이 기능을 사용하여 미리보기(Apple의 PDF 뷰어)에서 PDF 문서를 소리내어 읽습니다.

문제는 선택한 텍스트에 하이픈 하이픈이 있는 경우가 많다는 것입니다. 결과적으로 Text to Speech함수는 텍스트를 올바르게 읽을 수 없습니다.

예:

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

질문:

클립보드의 텍스트에서 하이픈을 제거하는 짧은 bash 쉘 스크립트를 작성해 주실 수 있나요? 또한 단축키를 할당하고 스크립트 출력을 "텍스트 말하기" 기능으로 보낼 수 있도록 자동화 프로그램을 사용할 것입니다.

편집하다:(Goldilocks의 의견에 대한 답변) Automator를 사용하면 선택한 텍스트를 클립보드에 복사한 다음 쉘 스크립트, 텍스트 읽기 기능을 복사할 수 있습니다. 아래를 참조하세요.

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

두 번째 편집:실제로 이를 달성하는 더 깔끔한 방법이 있을 수 있습니다.

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

"입력 전달" 옵션 아래에 "매개 변수로" 옵션이 있습니다. 이것이 첫 번째 그림에서 "클립보드로 복사" 작업을 건너뛸 수 있다는 의미인지는 확실하지 않지만 만약을 대비해 언급해야겠다고 생각했습니다.

답변1

Linux에서는 다음이 작동합니다.

xsel | sed ':rep /-$/ {N; s/-\n//; b rep}' | xsel -i

OSX에서는 대부분 추측입니다(비록 sed스크립트는 제대로 작동하지만). pbcopy사용하는 명령어인 것 같습니다. OSX에 선택 버퍼가 있고 pbcopy이를 기본적으로 사용할 수 있다고 가정하면 다음과 같이 작동할 수 있습니다.

pbpaste | sed ':rep /-$/ {N; s/-\n//; b rep}' | pbcopy

보고 있다온라인 매뉴얼 페이지, 사용 가능한 "페이스트보드"가 많이 있는 것 같습니다.

-pboard {general | ruler | find | font}
       specifies which pasteboard to copy to or paste from.  If no pasteboard is
       given,  the  general pasteboard will be used by default.

나는 당신이 원하는 것이 무엇인지 모르고 더 이상 문서를 볼 수 없습니다(비록 너무 깊이 보지는 않았지만). 당신은 그것을 시도 pbpaste -pboard xxx하고 무슨 일이 일어나는지 볼 수 있습니다. 아마도 하나는 강조 표시된 텍스트용이고 다른 하나는 Cmd-C를 사용하여 복사된 텍스트용입니다. 작업 옵션이 주어지면 이를 pbpaste및 에 추가하기만 하면 됩니다 pbcopy.

잘못될 수 있는 또 다른 문제는 pbcopy동일한 임시 보드를 동시에 읽고 쓰는 데 문제가 있다는 것입니다. 가장 간단한 해결책은 sponge. 그것은 일부이다더 많은 유틸리티. 이번에도 Linux 중심:

pbpaste | sed ':rep /-$/ {N; s/-\n//; b rep}' | sponge | pbcopy

그렇지 않으면 변수를 사용하십시오.

selection=$(pbpaste | sed ':rep /-$/ {N; s/-\n//; b rep}')
echo "$selection" | pbcopy

고쳐 쓰다

stdoutAutomator가 쉘 스크립트를 사용한다고 가정하면 이 to stdin옵션만 선택하면 됩니다(스크립트로 파이핑하면 데이터가 도착하는 위치입니다). 쉘 스크립트는 간단합니다:

#!/bin/sh
sed ':rep /-$/ {N; s/-\n//; b rep}'

관련 정보