2012-07-06 81 views
6

在OSX中(我在10.7.x,Lion上),你可以從任何應用程序中抓取一些文本並將其拖到桌面上以獲得「snippet.textClipping」文件。該文件不僅僅是原始文本 - 文本被隱藏起來,在某處(在資源中)?我嘗試過與DeRez一起探索,但一直未能將其屈服於我的意願。我正在尋找的是得到什麼人們可能會覺得這是輸出從如何從終端打印OSX文本剪輯文件的內容?

cat mysnippet.textClipping

注意的能力:這些剪報是一箇舊版本的OSX下進行。也許Leopard。也許更老,這是一段時間。 :)

謝謝!

P.S.我有一個有1600多個文件夾的文件夾,這就是爲什麼我要編寫腳本,而不是手動將它們複製/粘貼到文本文件中。

P.P.S.是的,如果我只是選擇 - 然後拖入一個開放的空文本文檔,它就像你期望的那樣。但我還是想通過腳本來完成它,這樣我就可以先放剪輯的名稱和領先的每一個空行,等等

+0

除了DeRez之外,另一種選擇是使用AppleScript(或Automator,或Python + ScriptingBridge或任何你喜歡的)來編寫TextEdit來執行你想要的操作。這將自動處理像RTFD,RTF,HTML或純文本的最佳選項轉換爲RTFD,獲取正確的字符集等案例。 – abarnert 2012-07-07 00:20:51

+0

您可以使用'字符串 Nit 2012-07-07 03:21:34

+0

'filename.textClipping/rsrc:不是一個目錄.'在接受的答案DeRez命令做了訣竅。沒有一個目錄可能與剪輯的年齡有關 - 我真的不知道格式是否改變。 (雖然這很有道理,但在網絡上的其他地方提出了許多建議,其他人表示工作對我來說不起作用。) – Olie 2012-07-07 06:55:46

回答

4

這裏的東西醜,可以工作:

DeRez -only TEXT foo.textClipping | perl -ne 'm|/\* (.*) \*/| && print $1; END {print "\n"}' 

基本上,它從DeRez輸出中的C樣式註釋中提取文本,並將其全部打印在一行上。我從另一個堆棧溢出問題(我現在找不到)得到了這個想法。

+0

+1。但是你可能需要utf8,而不是TEXT,因爲否則你必須通過iconv或其他東西來從MacRoman轉換。 (假設你想要純文本,而不是RTF或HTML ...) – abarnert 2012-07-07 00:19:01

+0

奇怪的是,utf8和UTF8都沒有返回任何內容,但是TEXT做了我想要的(模過渡)。可能是因爲剪輯的時代。無論哪種方式,我都會按照我想要的來做這個答案 - 謝謝! – Olie 2012-07-07 03:46:15

+0

這對於不可打印的和控制字符無法正常工作,DeRez以「。」顯示。 – echristopherson 2015-02-06 16:35:49