端末に次のようなものを入力していたとします。
ls | grep phrase
その後、これらのファイルをすべて削除したいことに気付きました。
そのために Ruby を使用したいのですが、何を渡せばよいかわかりません。
ls | grep phrase | ruby -e "what do I put in here to go through each line by line?"
端末に次のようなものを入力していたとします。
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
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
その他の使用法については、Ruby フォーラムでのこの講演をご覧ください: http://www.ruby-forum.com/topic/85528