說我是在我的終端打字一樣東西:你如何將shell輸出輸出到ruby -e?
ls | grep phrase
而且這樣做之後,我知道我想刪除所有這些文件。
我想使用Ruby來這樣做,但不能完全弄清楚要傳入的內容。
ls | grep phrase | ruby -e "what do I put in here to go through each line by line?"
說我是在我的終端打字一樣東西:你如何將shell輸出輸出到ruby -e?
ls | grep phrase
而且這樣做之後,我知道我想刪除所有這些文件。
我想使用Ruby來這樣做,但不能完全弄清楚要傳入的內容。
ls | grep phrase | ruby -e "what do I put in here to go through each line by line?"
以此爲出發點:
ls ~ | ruby -ne 'print $_ if $_[/^D/]'
哪退貨:
Desktop
Documents
Downloads
Dropbox
-n
標誌表示「循環所有進入的行」並將它們存儲在「默認」變量$_
中。我們沒有看到這個變量使用得太多,部分原因是對Perl過度使用它的膝蓋反應,但它在Rubydom中有其有用的時刻。
這些都是常用的標誌:
-e 'command' one line of script. Several -e's allowed. Omit [programfile]
-n assume 'while gets(); ... end' loop around your script
-p assume loop like -n but print line also like sed
顯然,該命令在Ruby 2.0中不起作用。粘貼它,我得到'''不好的數學表達式:操作數預計在'/^D /'''' –
好吧,在我的系統上,使用Ruby 2.0它工作正常。這不是Ruby代碼,它是在shell提示符下粘貼的。是你做的嗎? –
也許我跳過了一個字符或其他東西。我再次嘗試,現在它工作。感謝你的回答。 –
ARGF
將保存您的培根。
ls | grep phrase | ruby -e "ARGF.read.each_line { |file| puts file }"
=> phrase_file
file_phrase
stuff_in_front_of_phrase
phrase_stuff_behind
ARGF
是存儲無論你傳遞給你的(在這種情況下,命令行)腳本的數組。 你可以閱讀更多關於ARGF
這裏:
http://www.ruby-doc.org/core-1.9.3/ARGF.html
更多用途檢查出紅寶石論壇上的談話: http://www.ruby-forum.com/topic/85528
如果它是連續的數據流呢? – Pachonk
你爲什麼要刪除使用Ruby的文件? –