macos - Excel 保存制表符分隔的文件而不换行 (UNIX/Mac os X)

标签 macos excel perl unix newline

这是我遇到的一个常见问题,我的解决方案有点鲁莽。因此,我正在寻找问题的快速解决方案和解释。

问题是,当我决定将 Excel (mac 2011) 中的电子表格保存为制表符分隔文件时,它似乎做得很好。直到我尝试使用 Perl 逐行解析文件。由于某种原因,它将整个文档压缩为一行。

我的粗暴解决方案是在 Web 浏览器中打开文件,然后将信息复制并粘贴到 TextEdit 中的制表符分隔文件中(我从不使用富文本格式)。在执行此修复之前,我尝试在文件末尾引入换行符,但它无法解决问题。

这是怎么回事?如果有解释,我们将不胜感激。

~谢谢!~

最佳答案

问题是在不同系统上定义新行的实际字符代码。 Windows 系统通常使用回车+换行 (CRLF),*NIX 系统仅使用换行 (LF)。

这些字符在正则表达式中可以分别表示为 \r\n\n

有时,要对文本文件进行哈希处理,您需要解析换行符。在 perl 中尝试从 DOS 到 UNIX:

perl -pi -e 's/\r\n/\n/g' input.file

或者,对于使用 sed 的 UNIX 到 DOS:

$ sed 's/$'"/`echo \\\r`/" input.txt > output.txt

或者,对于使用 sed 的 DOS 到 UNIX:

$ sed 's/^M$//' input.txt > output.txt

关于macos - Excel 保存制表符分隔的文件而不换行 (UNIX/Mac os X),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22052168/

相关文章:

r - 通过 Homebrew 软件安装特定版本的 R

python - Python 中的文件扫描守护进程 (OS X)

linux - 如何更新 CPAN perl 模块

perl - ffmpeg 不能从 php 脚本工作,但可以从命令行工作

macos - 无法在 Mac OS X 上的 Go 1.5 中 gzip 超过 32768 字节的 slice

python - 如何在 mac 中配置 scitools.std?

javascript - 从带有多个innertext的网页excel vba中获取数据

excel - 以编程方式删除 excel 单元格编辑模式

VBA循环条件在任意行数后停止评估

regex - Perl 解析 JavaScript 文件正则表达式,仅在返回字符串的开头和结尾处捕获引号