10

端末に次のようなものを入力していたとします。

ls | grep phrase

その後、これらのファイルをすべて削除したいことに気付きました。

そのために Ruby を使用したいのですが、何を渡せばよいかわかりません。

ls | grep phrase | ruby -e "what do I put in here to go through each line by line?"
4

2 に答える 2

14

これを出発点として使用します。

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
于 2013-01-05T22:50:03.557 に答える
5

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

于 2013-01-05T22:19:34.613 に答える