在shell脚本中,如何逐行读取csv文件并获取值

时间:2011-07-12 09:40:34

标签: shell

我有三个字段(长度,高度,宽度)的csv文件。我希望逐行读取这些值并在database.how中更新这些值以逐行读取文件并更新数据库中的这些值。

我们可以使用“load in file”查询将整个文件更新为db。但是我想将修改后的值从csv更新到db.so如何逐行读取文件并更新这些值。?

1 个答案:

答案 0 :(得分:3)

正如道格拉斯在评论中所说,使用sh来解析CSV是一个非常不可扩展的计划。如果输入文件不是很简单,那么它将无法正常工作。但是,对于简单的输入,您只需要设置IFS。这是一个读取并尝试将数据放入MySQL数据库的示例(我没有测试SQL ......语法可能(可能是)关闭):

#!/bin/sh
IFS=,

while read one two three; do
    echo "insert into table( col1, col2, col3 ) "'
        '"values ('$one', '$two', '$three');"
done |
mysql db;