【发布时间】:2019-05-24 13:57:00
【问题描述】:
对于大于 3GB 的文件,Sed 命令在 Unix 中不起作用,无法从文件中删除回车符和换行符。
我正在尝试从管道分隔文件中删除换行符。
代码:
sed -i ':a;N;$!ba;s/\n|/|/g' File.txt
这是一个以竖线分隔的文件,所以我首先搜索行尾,然后用竖线替换换行符。
示例输入:
Test|A|B|C
|D
替换后 - 预期输出:
Test|A|B|C|D
sed 命令对所有小于 3 GB 的文件都可以正常工作,但对于更大的文件则不行。
【问题讨论】:
-
请在您的问题中添加示例输入和该示例输入所需的输出。
-
添加了示例输入和所需输出
-
如果您想使用
-i选项编辑一个 3GB 的文件,您需要在与 3GB 文件相同的目录中有 3GB 的可用空间。如果您将 3GB 的文件加载到内存中(使用命令N),您还需要 3GB 的可用内存/交换空间。 -
由于您是新用户,请拨打tour阅读How to Ask。我可以想象你得到了什么错误,但请注意,你只是提供了一种解释(“不起作用”),而不是实际的观察结果,例如错误输出。
-
请遵守国际公认的单位en.m.wikipedia.org/wiki/International_System_of_Units 标准,具体使用大写G 表示"giga" 和B 对于 "bytes" en.m.wikipedia.org/wiki/Gigabyte ,因为 b 指的是 "bits" en.m.wikipedia.org/wiki/Gigabit