gpt4 book ai didi

bash - 循环遍历 CSV 文件并在读取时创建新的 csv 文件?

转载 作者:行者123 更新时间:2023-11-29 09:38:31 39 4
gpt4 key购买 nike

我有

while read $field1 $field2 $field3 $field4
do
$trimmed=$field2 | sed 's/ *$//g'
echo "$trimmed","$field3" >> new.csv
done < "$FEEDS"/"$DLFILE"

现在的问题是 read 我不能让它拆分字段 csv 样式,可以吗?请参阅下面的输入 csv 格式。

我需要去掉第 3 列和第 4 列,去除第 2 列的填充,我不需要引号。

带有列号的 Csv 格式:12 24(")25(,)26(")/27(Field2values) 42(")/43(,)/44(Field3 十进制值)"Field1_constant_value","Field2values",Field3,Field4

Field1 不变且无关紧要。数据被引用,从引号内的 2-23 开始。Field2 用引号内的 cols 27-41 固定,数据在左边,右边用空格填充。Field3 是十进制数,小数点前有 1、2 或 3 位,小数点后有 2 位,无填充。从第 74 列开始。Field4 是一个日期,我现在不太关心它。

最佳答案

是的,你可以使用阅读;您所要做的就是重置环境变量 IFS -- 内部字段分隔符 --,这样它就不会按当前值(默认为空格)拆分行,而是按您自己的分隔符。

考虑具有给定内容的输入文件“a.csv”:

1,2,3,4

2,3,4,5

6,3,2,1

你可以这样做:

IFS=','
while read f1 f2 f3 f4; do
echo "fields[$f1 $f2 $f3 $f4]"
done < a.csv

输出是:

fields[1 2 3 4]

fields[2 3 4 5]

fields[6 3 2 1]

关于bash - 循环遍历 CSV 文件并在读取时创建新的 csv 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13434260/

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