首页 > 解决方案 > Bash:将包含逗号的数字打印到 csv 文件

问题描述

我正在尝试使用 bash 将带有逗号的数字打印到 csv 文件中。

命令:

printf "1,000" > the.csv

打印出两个单元格,一个带有 1,一个带有 000。我想知道如何告诉 csv 文件忽略逗号,以便我只能有一个包含 1,000 的单元格。

附带问题:我可以在打印到列时调整列的大小吗?即我打印的单词太长以至于单元格无法完全容纳,我可以在打印单词时让它足够大吗?

标签: bashshellprintf

解决方案


CSV 要求逗号包含在带引号的字符串中。因为引号是由 shell 解析的,所以你不是用你的命令写文字引号。如果要编写文字双引号,则其语法为

printf \"1,000\" > the.csv

或者

printf '"1,000"' > the.csv

(由于其他原因,缺少最后的换行符和使用文字字符串作为第一个参数printf是有问题的。你真的想要

printf '"%s"\n' "1,000" > the.csv

如果您愿意,这也可以轻松编写多行。)


推荐阅读