我正在尝试编写一个bash脚本,用于导入CSV文件并将其发送到Web上的某个位置。如果我使用手写的CSV,即:
summary,description
CommaTicket1,"Description, with a comma"
QuoteTicket2,"Description ""with quotes"""
CommaAndQuoteTicke3,"Description, with a commas, ""and quotes"""
DoubleCommaTicket4,"Description, with, another comma"
DoubleQuoteTicket5,"Description ""with"" double ""quoty quotes"""
READ命令能够正确读取文件。但是,如果我在Excel中创建“相同的文件”(即:具有相同的字段),则READ不能正常工作,通常只读取第一个值,而这就是全部。
相对较新的Bash脚本,所以如果有人认为我的代码有问题,我会上传它,但似乎Excel for Mac保存文件的方式有问题,我觉得有人可能会有一些想法在那。
你们可以贡献的任何东西都将非常感激。干杯!
答案 0 :(得分:3)
默认情况下,Mac上的Excel表示使用回车符的新记录,但bash正在使用换行符查找记录。在Excel for Mac中保存文件时,请务必将字符编码(保存文件时可用的选项)更改为DOS或Windows等,它们应该在回车符和换行符中弹出,并且应该“可读”。
或者,您可以使用tr
处理文件,并将所有CR转换为LF,即
tr '\r' '\n' < myfile.csv > newfile.csv
您可以通过使用od
检查文件来验证这是否真的存在问题。使用类似的东西:
od -c myfile.csv
寻找终结角色。
最后,您还可以调查bash的内部IFS
变量,并将其设置为包含“\ _”。请参阅:http://tldp.org/LDP/abs/html/internalvariables.html