当我从 excel 在 windows 中保存 TSV 文件时,它使用 \r 或 \015(八进制)的行结尾,在 vi 中显示为 ^M。
当我从 excel 在 Mac 上保存 TSV 文件时,它使用 \r\n 或 \015\012(八进制)的行结尾,在 vi 中显示为 ^M。
如何在不添加额外空行但仍保持与 linux 兼容的行结尾的情况下更改两个文件的行尾?
我目前在 PHP 中使用 exec() 来运行以下命令:
如果我使用:
cat {FILE} | tr -d "\015" > {NEW_FILE}
或者
cat {FILE} | tr -d "\r" > {NEW_FILE}
适用于 Windows 文件,但 Mac 文件失败。(删除所有行尾)
如果我使用:
cat {FILE} | tr "\015" "\012" > {NEW_FILE}
或者
cat {FILE} | tr "\r" "\n" > {NEW_FILE}
适用于 Mac 文件,但 Windows 文件失败。(创建空行)
任何想法如何在同一例程中处理任何一个?