使用 CsvKit 截断 CSV 列

pat*_*art 6 csv csvkit

如何使用 CSVKit 截断列的长度?

定义如下:

  • 第一栏:无长度限制
  • 第 2 列:<不超过 2 个字符>

这应该正确处理转义(引用)的列和新行。

例如:

First Header,Second Header
foo,
foo,b
foo,bar
foo,"bar"
foo,"""bar"
foo,"
bar"
Run Code Online (Sandbox Code Playgroud)

应该成为

First Header,Second Header
foo,
foo,b
foo,ba
foo,ba
foo,"""b"
foo,"
b"
Run Code Online (Sandbox Code Playgroud)

小智 3

这是 csvsql 的解决方案:

csvsql -d ',' --query 'SELECT "First Header" as "First Header",substr("Second Header",1,2) as "Second Header" FROM data' data.txt
Run Code Online (Sandbox Code Playgroud)
First Header,Second Header
foo,
foo,b
foo,ba
foo,ba
foo,"""b"
foo,"
b"
Run Code Online (Sandbox Code Playgroud)