在Excel中保存时,sed不会读取CSV

我正在尝试编写一个bash脚本来导入一个CSV文件并将其发送到networking上的某个地方。 如果我使用手写的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中创build“相同的文件”(即:具有相同的字段),则READ不能正常工作,通常只读取第一个值,这就是全部。

在Bash脚本编写相对较新的情况下,如果有人认为它是我的代码的问题,我会上传它,但这似乎是Excel for Mac保存文件的一个问题,我想有人可能会有一些想法。

任何你们可以贡献的东西都将非常感激。 干杯!

默认情况下,Mac上的Excel使用回车符指示新logging,但bash正在使用换行符查找logging。 当在Mac版Excel中保存文件时,请确保将字符编码(保存文件时可用的选项)更改为DOS或Windows等,这些文件应该在回车和换行符中popup,并且应该是“可读的”。

或者,您可以用tr处理文件,并将所有的CR转换为LF,即,

 tr '\r' '\n' < myfile.csv > newfile.csv 

一种方法,你可以validation这是否真的是问题是通过使用od来检查文件。 使用类似于:

 od -c myfile.csv 

并寻找最后的字符。

最后,您还可以调查bash的内部IFSvariables,并将其设置为包含“\ r”。 请参阅: http : //tldp.org/LDP/abs/html/internalvariables.html