クリップボードのテキストのインポートとハイフンの削除

クリップボードのテキストのインポートとハイフンの削除

私はMac OS 10.9を実行しており、Text to Speechショートカットを使用してすべてのアプリケーションで選択したテキストを読み取る機能を使用しています。私はこの機能を使ってプレビュー(AppleのPDFビューア)からPDF文書を読み上げます。

問題は、選択したテキストにハイフンハイフンがあることが多いことです。その結果、Text to Speech関数はテキストを正しく読み取ることができません。

例:

ここに画像の説明を入力してください。

質問:

クリップボードのテキストからハイフンを削除する短いbashシェルスクリプトを書くことはできますか?また、ショートカットを割り当ててスクリプト出力を「テキストスピーチ」機能に送信できるように、自動化プログラムを使用します。

編集する:(Goldilocksのコメントに対する回答)Automatorを使用すると、選択したテキストをクリップボードにコピーし、シェルスクリプト、テキスト読み取り機能をコピーできます。下記をご覧ください。

ここに画像の説明を入力してください。

2番目の編集:実際にこれを達成するためのよりきれいな方法があるかもしれません。

ここに画像の説明を入力してください。

「入力転送」オプションの下に「パラメータとして」オプションがあります。これが最初の図で「クリップボードにコピー」作業をスキップできることを意味するかどうかはわかりませんが、念のため言及する必要があると思いました。

ベストアンサー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何が起こるのかを見ることができます。おそらく、1つは強調表示されたテキスト用、もう1つはCmd-Cを使用してコピーされたテキスト用です。アクションオプションが与えられたら、それpbpasteをに追加するだけですpbcopy

間違っている可能性があるもう1つの問題は、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}'

おすすめ記事