2014-04-01 86 views
0

我試圖弄清楚如何從X應用程序高效地複製粘貼到終端。具體而言,我想在我的Web瀏覽器中突出顯示文本部分,然後將該註釋粘貼到shebang行後面的文件中。將標準輸入的文本塊粘貼到文件中的特定位置

代碼我到目前爲止是這樣的:

xclip -o | sed 's/^/#/' | sed '2n' myscript.pl 

第一命令採用我在瀏覽器中加入#
最後一位不突出
第二個命令註釋行文本沒有工作..

我想在這裏做的是追加行號2後面的文本到我的腳本。但顯然我做錯了這個問題..有沒有人有一個有用的建議?

回答

1

您可以使用sedread安全處理所有類型的輸入,包括帶有特殊字符和多行的輸入。這需要一箇中間文件:

xclip -o | sed -e 's/^/#/g' -e '$s/$/\n/' > TMP && sed -i '1r TMP' den && rm TMP 
+0

啊! xargs,我雖然沒有那個...很酷:) –

+0

當我嘗試你的解決方案時,我得到這個錯誤:sed:-e表達式#1,字符240:未知命令:'我' –

+0

@ Dan-SimonMyrland,改變了處理多行輸入和各種特殊字符的答案。 – perreal

1

sed只對一個輸入流(管道或文件)進行操作,如果使用xclip的輸出作爲數據流,則不能通知sed從文件讀取。相反,您可以使用命令替換來存儲修改後的輸出,並在單獨的命令中使用它。如何:

sed "2i$(xclip -o | sed 's/^/#/')" myscript.pl 

這將打印修改的文件到標準輸出,如果你要編輯的文件本身則使用-i標誌。

+0

正是我在找的東西!謝謝:D –

相關問題