标签: csv

使用 jq 在 CSV 中提取值和格式

我有以下 JSON 文件:

{
"data": [
    {
        "displayName": "First Name",
        "rank": 1,
        "value": "VALUE"
    },
    {
        "displayName": "Last Name",
        "rank": 2,
        "value": "VALUE"
    },
    {
        "displayName": "Position",
        "rank": 3,
        "value": "VALUE"
    },
    {
        "displayName": "Company Name",
        "rank": 4,
        "value": "VALUE"
    },
    {
        "displayName": "Country",
        "rank": 5,
        "value": "VALUE"
    },
]
}
Run Code Online (Sandbox Code Playgroud)

我想要一个这种格式的 CSV 文件:

First Name, Last Name, Position, Company Name, Country
VALUE, VALUE, VALUE, VALUE, VALUE, VALUE
Run Code Online (Sandbox Code Playgroud)

这可以通过仅使用jq吗?我没有任何编程技能。

bash python csv json jq

74
推荐指数
4
解决办法
14万
查看次数

是否有用于处理 csv 文件的强大命令行工具?

我使用 CSV 文件,有时需要从命令行快速检查行或列的内容。在许多情况下cutheadtail、 和朋友会完成这项工作;然而, cut 不能轻易处理诸如

"this, is the first entry", this is the second, 34.5
Run Code Online (Sandbox Code Playgroud)

在这里,第一个逗号是第一个字段的一部分,但cut -d, -f1不同意。在我自己编写解决方案之前,我想知道是否有人知道已经存在用于这项工作的好工具。它至少必须能够处理上面的示例并从 CSV 格式的文件中返回一列。其他理想的功能包括能够根据第一行中给出的列名选择列、支持其他引用样式和支持制表符分隔的文件。

如果您不知道这样的工具,但对在 Bash、Perl 或 Python 或其他常见脚本语言中实现这样的程序有建议,我不会介意这样的建议。

command-line software-rec text-processing csv

59
推荐指数
11
解决办法
4万
查看次数

命令可以很好地布局制表符分隔列表

有时,我得到一个输入制表符分隔的列表,例如,它不太对齐

var1  var2  var3
var_with_long_name_which_ruins_alignment  var2 var3
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以使它们对齐?

var1                                      var2  var3
var_with_long_name_which_ruins_alignment  var2  var3
Run Code Online (Sandbox Code Playgroud)

command-line text-processing tabulation csv

43
推荐指数
1
解决办法
3万
查看次数

在一个脚本中加入多个 sed 命令以处理 CSV 文件

有一个像这样的 CSV 文件:

HEADER
"first, column"|"second "some random quotes" column"|"third ol' column"
FOOTER
Run Code Online (Sandbox Code Playgroud)

并寻找类似的结果:

HEADER
first, column|second "some random quotes" column|third ol' column
Run Code Online (Sandbox Code Playgroud)

换句话说,删除“FOOTER”、开头、结尾和周围的引号 |。

到目前为止,这段代码有效:

sed '/FOOTER/d' csv > csv1 | #remove FOOTER
sed 's/^\"//' csv1 > csv2 | #remove quote at the beginning
sed 's/\"$//' csv2 > csv3 | #remove quote at the end
sed 's/\"|\"/|/g' csv3 > csv4 #remove quotes around pipe
Run Code Online (Sandbox Code Playgroud)

如您所见,问题在于它创建了 4 个额外的文件。

这是另一个解决方案,其目标是不创建额外的文件并在单个脚本中执行相同的操作。它不能很好地工作。

#!/bin/ksh

sed '/begin/, /end/ { 
        /FOOTER/d
        s/^\"//
        s/\"$//
        s/\"|\"/|/g 
}' csv …
Run Code Online (Sandbox Code Playgroud)

sed csv

43
推荐指数
2
解决办法
9万
查看次数

在命令行上使用分号分隔字段将 .xlsx (MS Excel) 文件转换为 .csv

我意识到这不是一个完全与 unix/linux 相关的问题。但由于这是我将在 linux 上做的事情,我希望有人有答案。

我有一个在线 excel 文件 ( .xlsx),它会定期更新(由其他人)。我想编写一个脚本并将其作为 cronjob 放入以处理该 excel 表。但要做到这一点,我需要将其转换为一个文本文件(所以 a .csv),其中包含分号分隔的列。不幸的是,它不能用逗号分隔,因为某些列中有逗号。是否有可能从 shell 进行这种转换?我安装了 Open office,我可以使用它的 GUI 来做到这一点,但想知道是否可以从命令行做到这一点。谢谢!

PS:我也有一台 Mac 机器,所以如果一些解决方案可以在那里工作,那也很好。:)

openoffice csv conversion spreadsheet libreoffice

34
推荐指数
3
解决办法
12万
查看次数

将 CSV 转换为 TSV

我有许多大型 CSV 文件,并希望它们采用 TSV(制表符分隔格式)。复杂的是CSV文件的字段中有逗号,例如:

 A,,C,"D,E,F","G",I,"K,L,M",Z
Run Code Online (Sandbox Code Playgroud)

预期输出:

 A      C   D,E,F   G   I   K,L,M   Z
Run Code Online (Sandbox Code Playgroud)

(中间的空格是“硬”标签)

我在这台服务器上安装了 Perl、Python 和 coreutils。

python perl text-processing csv

34
推荐指数
9
解决办法
3万
查看次数

如何使用 sed 或 awk 操作 CSV 文件?

如何使用sed或对 CSV 文件执行以下操作awk

  • 删除列
  • 复制一列
  • 移动一列

我有一个超过 200 行的大桌子,我对sed.

sed awk csv

26
推荐指数
4
解决办法
7万
查看次数

是否有命令行实用程序来转置 csv 文件?

给定一个像这样的文件

First,Last,Age
Cory,Klein,27
John Jacob,Smith,30
Run Code Online (Sandbox Code Playgroud)

是否有命令行实用程序来转置内容,以便输出看起来像这样

First,Cory,John Jacob
Last,Klein,Smith
Age,27,30
Run Code Online (Sandbox Code Playgroud)

text-processing csv

26
推荐指数
3
解决办法
2万
查看次数

仅在逗号分隔的文件中删除引号之间的逗号

我有一个用逗号 ( ,)分隔的输入文件。有一些用双引号括起来的字段中包含逗号。这是示例行

123,"ABC, DEV 23",345,534.202,NAME
Run Code Online (Sandbox Code Playgroud)

我需要删除双引号和双引号内出现的所有逗号。所以上面的行应该被解析为如下所示

123,ABC DEV 23,345,534.202,NAME
Run Code Online (Sandbox Code Playgroud)

我尝试了以下使用sed但没有给出预期的结果。

sed -e 's/\(".*\),\(".*\)/\1 \2/g'
Run Code Online (Sandbox Code Playgroud)

任何快速的运用了sedawk或者任何其他Unix工具吗?

sed awk text-processing csv

25
推荐指数
3
解决办法
7万
查看次数

命令行友好的电子表格

这样的事情存在吗?在 CLI 环境中显示良好的基于​​文本的电子表格。我知道我可以随心所欲地cat foobar.csv做,但这并不是特别实用或有吸引力。我无法想象格式化表格会很困难,并且可能也遵循某些规则(数学?)。

Emacs 可以org-mode很好地处理基于文本的表格,并允许导出为多种格式。但是,必须使用 Emacs!作为 Vim 用户,我更愿意避免这种情况。

command-line text-processing csv

24
推荐指数
2
解决办法
8232
查看次数