使用 ARGV Ruby 写入文件

Writing File with ARGV Ruby

我试图让我的输出看起来像这样:

0.00
teddy bear,.00
shirt,.75
pants,.35

但是,当我运行命令将输入​​写入文件时,我得到了错误的格式:

ruby start.rb '0.00\nteddy bear,.00\nshirt,.75\npants,.35'

start.rb:

input  = ARGV.first
File.open('./data_files/list.txt', 'w') {|file| file.write(input)}

最终输出(在我的 data_files/list.txt 文件中):

0.00\nteddy bear,.00\nshirt,.75\npants,.35

知道如何编写文件以使其以正确的格式显示吗?

谢谢

shell 无法将 \n 识别为常规单引号字符串中的换行符;您正在将文字反斜杠-n 传递给 Ruby。 (并且 Ruby 不像在 Ruby 代码中处理文字字符串那样处理输入字符串。)

如果您的 shell 是 bash,您可以改用 $'...' ANSI 字符串:

ruby start.rb $'0.00\nteddy bear,.00\nshirt,.75\npants,.35'

否则,您可以使用文字换行符:

ruby start.rb '0.00
teddy bear,.00
shirt,.75
pants,.35'