如何在Mac终端直接从CSV文件中删除列?

7
如何在Mac终端的命令行中直接从csv文件中删除第三列。我知道保留前两列和后面的列,但不知道如何删除第三列。
 cut -d',' -f3 data.csv

将列信息直接提取到终端,但我想通过终端完全从数据集中删除第三列。 我该如何做?

在终端中,您可以使用以下命令来删除第三列(假设您的文件以逗号分隔): cut -d ',' -f 1,2,4- filename.csv 这将删除第三列并将结果输出到终端。
3个回答

17

尝试

cut -d',' -f1-2,4- data.csv

这会将其他列打印到终端,但如何将其保存到一个全新的 CSV 文件中? - user2896468
5
只需添加 > outfile.txt - uselpa
仅对列号语法进行简要说明:-f1-2 选择列1和列2之间的所有列;4- 选择第4列之后的所有列,如5、6、7直到最后一列。 - Ajay Sant
我执行了命令:cut -d' ' -f4-7 --complement xyz.csv(空格分隔的文件),但是出现了错误“cut: illegal option -- -”。为什么会这样?谢谢。 - toto_tata
@toto_tata,你可能打成了cat而不是cut - Rahav

1

如果要删除多个字段或者只想查看几列,所有示例都似乎有点棘手。因此,我只显示我想要的列。因此,如果我只想获取第1、2和5列,我会这样做:

cut -d, -f 1,2,5 hugeData.csv

NB:-d设置文件中的分隔符。在上面的示例中,它是逗号,


-4

我的grep / regex有点生疏,但如果列数固定,则可以为每个引号对(及其内容)制作一个grep语句,然后用除第三个引号对以外的所有内容替换。这是一种笨拙的方法,但仍然可以完成工作。

man grep

请向下滚动到“正则表达式”部分,以获取有关如何指定的帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接