2011-02-24 33 views
0
file = ["file1","file2",...].join(" ") 

`paste "#{file}"` 

你好,我有這個簡單的問題,一直在困擾着我好幾天。我想使用Ruby來選擇要粘貼在一起的文件,但是當我使用上面的代碼時,它會返回說沒有找到文件。如果我運行一個文件,例如paste file1,它的工作原理。有人知道代碼爲什麼不起作用嗎?呼叫系統將文件粘貼在一起

在此先感謝

+0

「粘貼在一起」是什麼意思?將文件名加入或連接成單個字符串? –

+0

嗨,我的意思是實際上將文件並排放在一起。 – user360032

+0

問題不在於將事物粘貼在一起。你可以用很多不同的方式來做到這一點。問題在於,在這種情況下構建的文件名被傳遞給'paste'(請參見下面的答案)。但是這段代碼和'ls'或其他外部命令一樣難。 – xinit

回答

1

這是因爲你引用#{file}。被執行的東西是paste "file1 file2"

您可能想要paste #{file}這將導致paste file1 file2。在你的情況下,粘貼需要一個名爲「file1 file2」的文件(文件名與空格)。

換句話說,刪除你的第二行中的雙引號。

+0

AH。非常感謝你。我現在明白了。我不知道你不需要在文本文件中插入「」。 – user360032

+0

順便說一句反引號就像雙引號一樣工作。你以同樣的方式使用字符串插值'#{...}',所以你不需要添加額外的雙引號。 – xinit

+0

非常感謝! – user360032