gpt4 book ai didi

javascript - 使用 Unix 的 sed 将 csv 转换为 javascript 对象

转载 作者:行者123 更新时间:2023-12-02 15:31:52 24 4
gpt4 key购买 nike

很抱歉发布这样一个基本的问题,但我对所有不同的教程和示例(以及斜杠、连字符和反引号哦天哪)感到困惑,所以我想我会得到某人经验丰富的输入。

我有一个 .csv,显然是逗号分隔的,有数百行,如下所示:

abcd-3096,62#,,100,,,25,,75,3,它的格式应该像这样:

{name: 'abcd-3096', weight : 62, some-field1: null, class: 100, some-field2: null, some-field3: null, unit-weight : 25, some-field4 : null, capacity : 75,   }

我知道您会想要使用 awksed 来替换它,而且我非常擅长在多个命令中进行格式化。

我不希望有人为我格式化整行,但我希望有人可以向我展示如何在列前面添加一些文本。我似乎无法在网上找到该命令的可靠解释。

最佳答案

您可以使用否定字符类,例如[^,]:

sed -r 's/^([^,]*),([^,]*),([^,]*)/{ name: "\1", weight: "\2", somefield1: "\3" }/' file.csv

为简单起见,该示例仅使用 3 个组...但您明白了。

如果您的系统不支持sed -r(扩展正则表达式语法),则需要使用\(group\)而不是(group):

sed 's/^\([^,]*\),\([^,]*\),\([^,]*\),\([^,]*\)/{ name: "\1", weight: "\2", somefield1: "\3" }/' file.csv
<小时/>

如果您不需要使用 sed,您也可以直接使用 bash:

while IFS=',' read -r name weight somefield1 class somefield2 somefield3 unitweight capacity rest
do
echo -e "{ name: \"$name\", weight: \"$weight\", somefield1: \"$somefield1\",";
echo -e " class: \"$class\", somefield2: \"somefield2\" somefield3: \"$somefield3\",";
echo -e " unitweight: \"$unitweight\", capacity: \"$capacity\" }";
done < file.csv
IFS=$' \t\n'

(取自 this koola 的回答)

关于javascript - 使用 Unix 的 sed 将 csv 转换为 javascript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33248503/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com