2015-12-02 139 views
0

在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

回答

1

你甚至都不需要循環,只要使用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

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

或更換切斷與AWK

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