linux用分割的csv文件读取,在Linux中将制表符分隔的文件转换为CSV的最快方法

在Linux环境下,将包含2亿行的制表符分隔文件转换为CSV文件,且需要去除多行标题。讨论中提到了使用Python、Perl、sed、awk、tr等工具的不同解决方案,提供了多种实现方式的选择。
摘要由CSDN通过智能技术生成

在Linux中将制表符分隔的文件转换为CSV的最快方法

我有一个制表符分隔的文件,其中包含超过2亿行。 在Linux中将其转换为CSV文件的最快方法是什么? 该文件的确包含多行标题信息,我需要将其删除,但是标题行数是已知的。 我已经看到有关sed和gawk的建议,但是我想知道是否存在“首选”选择。

为了澄清起见,此文件中没有嵌入的选项卡。

andrewj asked 2020-06-23T04:03:36Z

10个解决方案

73 votes

如果您担心嵌入式逗号,则需要使用稍微更智能的方法。 这是一个Python脚本,该脚本从stdin提取TSV行并将CSV行写入stdout:

import sys

import csv

tabin = csv.reader(sys.stdin, dialect=csv.excel_tab)

commaout = csv.writer(sys.stdout, dialect=csv.excel)

for row in tabin:

commaout.writerow(row)

从外壳运行它,如下所示:

python script.py < input.tsv > output.csv

Ignacio Vazquez-Abrams answered 2020-06-23T04:04:27Z

50 votes

如果您需要做的就是将所有制表符转换为逗号,则可能需要tr。

此处的空白是文字标签:

$ echo "hello world" | tr "\\t" ","<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值