从csv文件读入bash脚本

问题描述:

在bash脚本中,我想循环使用存储在csv文件中的值。我如何从一个CSV文件导入到一个bash脚本导入一列,然后做一些事情,如:从csv文件读入bash脚本

for i in {column imported from csv} 

do 
mkdir "$i" 
done 

我的CSV文件看起来像这样:

1, 3, 8 
4, 6, 10 
123, 6, 8 
324, 9, 12 

我怎么导入第一列得到:

for i in {1, 4, 123, 324} 
+0

你想在数据中的逗号或不?假设语法中4个值中的3个在它们之后有逗号,这可能是也可能不是数据中的逗号。 –

+0

不,我不想要逗号 – user2483176

你甚至都不需要循环,只要使用cutxargs

cut -d, -f1 file | xargs mkdir 

要使用for环获得第一列:

while IFS=, read -ra arr; do 
    echo "processing ${arr[0]}" 
done < file 
processing 1 
processing 4 
processing 123 
processing 324 

更改echo到要在循环中使用什么命令。

+0

这很好,如果我只是做目录,但我想要循环,因为我需要用变量做其他事情。 – user2483176

+0

好的检查编辑的答案。 – anubhava

$ for i in $(cut -d, -f1 file); do mkdir "$i"; ... ; done 

或更换切断与AWK

$ for i in $(awk -F, '{print $1}' file); do mkdir "$i"; ... ; done