如何从csv文件中提取值到Unix Shell脚本

时间:2018-03-15 20:29:40

标签: bash unix

从unix shell脚本文件中,我想提取csv文件中的值。假设,我有一个带有头文件V1,V2和N的csv文件values.csv,如下所示:

"V1","V2","N"
"0","0",216856
"1","0",16015
"0","1",25527
"1","1",10967

我想提取列N值并将其分配给unix脚本文件中的变量。例如,

a = 216856
b = 16015
c = 25527
d = 10967

如何拉取N的值并分配给shell脚本文件中的变量a,b,c,d?请帮忙。 提前致谢。

2 个答案:

答案 0 :(得分:1)

不要使用单个变量名,请使用数组。安装csvkit,然后

mapfile -t n < <(csvcut -c "N" file.csv)

echo "a = ${n[1]}"
echo "b = ${n[2]}"
echo "c = ${n[3]}"
echo "d = ${n[4]}"

请注意,解析CSV可能会非常棘手,因此请使用正确的CSV解析器。

答案 1 :(得分:0)

这将在Bash中起作用,假设你想使用数组,这是正确的方法:

 array=( $( tail -n +2 values.csv | awk -F',' '{print $3}'  | tr '\n' ' ' ) )
 echo "${array[0]}"

问候!