看書(shū)的時(shí)候,有時(shí)會(huì)需要將書(shū)里的內(nèi)容復(fù)制出來(lái),比如我有段時(shí)間要將書(shū)里的內(nèi)容做成Anki的卡片給孩子學(xué)習(xí),有時(shí)書(shū)里面我看不懂的內(nèi)容(把里面的單詞都查了還是看不懂)貼到Google翻譯里面翻譯,有這個(gè)引用的內(nèi)容會(huì)比較麻煩。
“この傷があの……」マクゴナガル先生が囁いた?! 袱饯Δ袱?。一生殘るじゃろう」 「ダンブルドア、なんとかしてやれないんですか?”
摘錄來(lái)自: J.K. Rowling. “ハリー?ポッターと賢者の石 - Harry Potter and the Philosopher's Stone (ハリー?ポッターシリーズ)?!?Apple Books.
像這樣長(zhǎng)長(zhǎng)的書(shū)名的時(shí)候刪除起來(lái)還真的挺麻煩的。
我最開(kāi)始找到的是在國(guó)外的網(wǎng)站上找到的解決方案,和這個(gè)鏈接的思路是一樣的。就是用Automator獲得剪貼板里面內(nèi)容,然后通過(guò)以下bash命令把添加的引用信息去除:
sed -E -e 's/^“//g' 刪除每段開(kāi)頭的 “
sed -E -e 's/”$//g' 刪除每段結(jié)尾的 ”
sed -E -e '/^$/d' 刪除所有空行
sed -E -e 's/^(摘錄來(lái)自).*//g' 刪除以“摘錄來(lái)自”為開(kāi)頭的段落
但是這個(gè)方案有一個(gè)缺陷,如果復(fù)制多行的時(shí)候,如果原文中本來(lái)也有雙引號(hào)的話,也會(huì)給誤刪除。
要修改的話我對(duì)bash的sed命令又一竅不通,一直想用Python來(lái)處理,但是Automator的參數(shù)傳遞我一直沒(méi)有搞明白。
今天偶然在簡(jiǎn)書(shū)上發(fā)現(xiàn)了這篇文章,這個(gè)簡(jiǎn)直太有幫助了,簡(jiǎn)單來(lái)說(shuō)就是Automator獲得的文本,傳到stdin,這個(gè)在Python的sys模塊里可以讀取,然后用Python的print函數(shù)可以將處理的結(jié)果傳給Automator,Automator可以將這個(gè)結(jié)果賦值給一個(gè)變量,或者直接輸出到剪貼板。
具體操作如下:
-
打開(kāi)Automator,然后新建一個(gè)快速操作。
image.png -
實(shí)用工具→獲取剪貼板內(nèi)容,并拖到右邊的編輯區(qū);
image.png - 再添加
運(yùn)行Shell腳本,并且選擇Python。
image.png
注意Shell的地方選擇Python,傳遞輸入到stdin。 - 添加
拷貝至剪貼板。
image.png - 在運(yùn)行Shell腳本的地方添加以下代碼。
import sys
import re
content = ''
#從stdin里讀取內(nèi)容
for t in sys.stdin:
content += t
#利用正則表達(dá)式來(lái)查找原文并去除添加的引用信息
p = re.compile('“(.+)”\n\n摘錄來(lái)自:')
copy = p.search(content).group(1)
#用print函數(shù)把結(jié)果傳回Automator
if copy:
print(copy)
- 將這個(gè)快速操作保存一個(gè)自己容易記的名字,我這里保存為rmcitation。
-
在系統(tǒng)設(shè)置里面給這個(gè)快速操作添加一個(gè)快捷鍵。
image.png
這樣以后在iBooks里可以選擇文字,復(fù)制到剪貼板,然后再按這個(gè)組合鍵,系統(tǒng)剪貼板里面的內(nèi)容就會(huì)變成干凈的內(nèi)容了。
下面的這個(gè)方法是我在折騰Automator的時(shí)候突然想到的,可以將選擇的文本直接復(fù)制的剪貼板。只是這個(gè)方法有一個(gè)小問(wèn)題,我們后面再說(shuō)。
-
還是新建一個(gè)快速操作;
image.png
選擇一下圖書(shū)。
- 再添加
拷貝至剪貼板;
image.png -
也給它添加一個(gè)快捷鍵。
image.png
下面就可以在iBooks里面試試了,一般情況下都是沒(méi)有問(wèn)題,只要你讀的書(shū)不是像這樣的帶有注音的就不會(huì)有問(wèn)題。








