1

次のようなテキスト ファイルがあるとします。

SELL USDCAD 0.99257 0.99653 0.39 -150.1 -8.57% -580.99 1 week ago  Copy 
SELL USDCAD 0.98986 0.99653 0.26 -177.2 -6.75% -457.25 1 week ago  Copy 
SELL USDCAD 0.98711 0.99653 0.17 -204.7 -5.10% -345.37 1 week ago  Copy 
BUY USDCAD 0.98613 0.98715 0.17 8.4 0.21% 14.47 1 week ago  Copy 

そして、この文字列が「1週間前」である行を探しています。そして、それを変数に取り、別のテキスト ファイルに書き込みます。

どうやってやるの?

4

3 に答える 3

2

コマンドラインからの1行で同じことができるのに、これにルビーを使わなければならない理由はありますか?

grep '1 week ago' file.txt > newfile.txt
于 2013-01-25T20:59:02.990 に答える
0

あなたはこれを行うことができます:

str = <<EOT 
SELL USDCAD 0.99257 0.99653 0.39 -150.1 -8.57% -580.99 1 week ago  Copy 
SELL USDCAD 0.98986 0.99653 0.26 -177.2 -6.75% -457.25 1 week ago  Copy 
SELL USDCAD 0.98711 0.99653 0.17 -204.7 -5.10% -345.37 1 week ago  Copy 
BUY USDCAD 0.98613 0.98715 0.17 8.4 0.21% 14.47 1 week ago  Copy
EOT

content = str.lines.select { |l| l.include? '1 week ago' }.join("\n")
File.open('asdf.txt', 'w') { |file| file.write content }
于 2013-01-25T20:56:38.040 に答える
0

次を使用してコマンドラインから実行します。

ruby -ne 'print if $_["1 week ago"]' < file_to_read > file_to_write
于 2013-01-25T21:01:25.487 に答える