IMP*_*TOR 17 unix macos excel perl newline
这是我遇到的一个常见问题,我的解决方案有点夸张.所以我正在寻找快速解决问题的方法.
问题是,当我决定将excel(mac 2011)中的电子表格保存为制表符分隔文件时,它似乎完全没问题.直到我尝试使用Perl逐行解析文件.出于某种原因,它将整个文档扼杀在一行中.
我的野蛮解决方案是在Web浏览器中打开文件,并将信息复制并粘贴到TextEdit中的制表符分隔文件中(我从不使用富文本格式).我尝试在执行此修复之前在文件末尾引入换行符,但它无法解决问题.
这里发生了什么?一个解释将不胜感激.
〜谢谢!〜
小智 11
问题是在不同系统上定义新行的实际字符代码.Windows系统通常使用CarriageReturn + LineFeed(CRLF),*NIX系统仅使用LineFeed(LF).
这些字符可以在RegEx中表示为\ r \n或\n(分别).
有时,要通过文本文件进行哈希处理,您需要解析新行字符.在perl中尝试使用DOS-to-UNIX :
perl -pi -e 's/\r\n/\n/g' input.file
Run Code Online (Sandbox Code Playgroud)
或者,对于使用sed的 UNIX-to-DOS :
$ sed 's/$'"/`echo \\\r`/" input.txt > output.txt
Run Code Online (Sandbox Code Playgroud)
或者,对于使用sed的 DOS到UNIX :
$ sed 's/^M$//' input.txt > output.txt
Run Code Online (Sandbox Code Playgroud)
小智 7
找到了一个非常简单的解决方案.将数据从Excel复制到剪贴板,将其粘贴到Google电子表格中.将谷歌电子表格文件下载为"制表符分隔值.tsv".这解决了问题,并且每个行都有一个带有行尾的制表符分隔符.
| 归档时间: |
|
| 查看次数: |
16453 次 |
| 最近记录: |