使用 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'
我试图让我的输出看起来像这样:
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'