gpt4 book ai didi

列数未知的csv文件的Bash处理

转载 作者:行者123 更新时间:2023-11-29 09:36:41 27 4
gpt4 key购买 nike

我正在尝试使用 bash 学习一些文本处理。

如何制作 bash 脚本来读取和处理列数未知且第一行作为列标题的 CSV 文件?

示例输入:

column1,column2,...,columnn
value11,value12,...,value1n
value21,value22,...,value2n
...
valuem1,valuem2,...,valuemn

输出:

column1: value11
column2: value12
...
columnn: value1n

column1: value21
column2: value22
...
columnn: value2n

...

column1: valuem1
column2: valuem2
...
columnn: valuemn

最佳答案

一种简单的方法是设置 IFS=, 并使用 read -a 读入数组:

#!/bin/bash
IFS=','
read -a headers
while read -a line; do
for i in "${!line[@]}"; do
echo "${headers[i]}: ${line[i]}"
done
done

第一行被读入一维数组$line,根据$IFS中的字符进行拆分。当有可用输入时,以相同的方式读取后续行,并且 "${!line[@]}" 中的 ! 指示 bash 循环遍历数组索引数组值。

如果数据使用任何类型的转义方法来包含逗号文字,这将不起作用。

关于列数未知的csv文件的Bash处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19484001/

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