저는 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
고쳐 쓰다
stdout
Automator가 쉘 스크립트를 사용한다고 가정하면 이 to stdin
옵션만 선택하면 됩니다(스크립트로 파이핑하면 데이터가 도착하는 위치입니다). 쉘 스크립트는 간단합니다:
#!/bin/sh
sed ':rep /-$/ {N; s/-\n//; b rep}'