Excel保存不带换行符的制表符分隔文件(UNIXMac OS X)

Excel保存不带换行符的制表符分隔文件(UNIXMac OS X),第1张

概述Excel保存不带换行符的制表符分隔文件(UNIX / Mac OS X)

这是我遇到的一个常见问题,我的解决scheme有点匆忙。 所以我正在寻找一个快速修复和问题的解释。

问题是,当我决定将一个电子表格保存在excel(mac 2011)中作为制表符分隔的文件时,它似乎完全正确。 直到我尝试使用Perl逐行parsing文件。 由于某种原因,它将整个文档整理成一行。

我粗暴的解决scheme是在Web浏览器中打开文件,并将信息复制并粘贴到文本编辑器中的制表符分隔文件中(我从不使用富文本格式)。 在尝试修复之前,我尝试在文件末尾添加换行符,但不能解决问题。

这里发生了什么? 一个解释将不胜感激。

UNIX:用换行符replace换行符,在EOF之前保留换行符

为什么在windows中换行符是2个字节?

使用Tectia从窗口传输文件到unix时如何删除ctrl M字符?

在windows / Java中反向换行

插入新行到bash提示

〜谢谢!〜

以二进制模式写入标准输出最简单的方法是什么?

如何做一个redirect到它的stringwhile循环

只有当它不存在时才添加一个换行符

使用JRuby在windows上编写Unix换行符

PHP的正则Expression式来限制新的行数最多两个

问题是在不同系统上定义新行的实际字符代码。 windows系统通常使用CarriageReturn + lineFeed(CRLF),而* NIX系统只使用lineFeed(LF)。

这些字符可以在RegEx中分别表示为 r n或 n (分别)。

有时候,要通过文本文件进行散列,您需要解析新行字符。 在perl下试试DOS-to-UNIX:

perl -pi -e 's/rn/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

找到一个非常简单的解决方案。 将数据从Excel复制到剪贴板,粘贴到谷歌电子表格。 将Google电子表格文件下载为“制表符分隔值.tsv”。 这解决了这个问题,并且每行都有制表符分隔符。

Perl有一个有用的正则表达式模式R将匹配任何常见的行结束。 它实际上匹配任何垂直空格 – 与v相同 – 或CR LF组合,所以它与rn|v

这在这里很有用,因为你可以把你的整个文件变成一个标量,然后split /R/ ,这会给你一个已经chomp的文件记录列表(如果你想保留行结束符, split /RK/来代替

另一种选择是PerliO::eol模块。 它提供了一个新的Perl IO层,无论文件的内容是什么,都可以规范行尾

一旦你use PerliO::eol加载模块,你可以在open语句中使用它

open my $fh,'<:eol(LF)','myfile.tsv' or dIE $!;

也可以使用open杂注将其设置为所有输入文件句柄的默认层

use open IN => ':raw:eol(LF)';

这将从任何平台的输入文件工作正常

又一个解决方案…

对于制表符分隔文件,将文档另存为windows Formatted Text (.txt)文件类型

对于以逗号分隔的文件,将文档另存为“windows逗号分隔(.csv)”文件类型

总结

以上是内存溢出为你收集整理的Excel保存不带换行符的制表符分隔文件(UNIX / Mac OS X)全部内容,希望文章能够帮你解决Excel保存不带换行符的制表符分隔文件(UNIX / Mac OS X)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/1273153.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存