【发布时间】:2019-08-03 13:43:31
【问题描述】:
在一个文件夹中,我有 2 个文件。 Valuation.csv 和另一个文件 myScript.sh
我的 CSV 文件有 10 行和 5 列。我曾多次尝试阅读它,但它从未奏效。这是我在 myScript.sh 中尝试的代码:
第一次尝试:
#!/bin/bash
while read -r line do
field1=$(echo $line | awk -F'|' '{printf "%s", $1}' | tr -d '"')
field2=$(echo $line | awk -F'|' '{printf "%s", $2}' | tr -d '"')
echo $field1 $field2 done < $Valuation.csv
结果:/myScript.sh:第 10 行:.csv:没有这样的文件或目录
第二次尝试:
cat Valuation.csv|while read line do
read -d, col1 col2 < <(echo $line)
echo "I got:$col1|$col2" done
结果:什么都没有
我正在运行这样的文件:
./myScript.sh
谢谢
【问题讨论】:
-
为什么不使用通用脚本语言,例如 python/perl?
-
嗨@James,你能提供一个文件的内容吗?
-
将 Excel 工作表另存为
.csv并将数据作为文本发布,而不是电子表格的图片。 Bash 无法读取电子表格的图片。 -
@James :变量
Valuation为空/未定义。除此之外,我认为以这种方式处理 CSV 不是一个好主意,因为它仅适用于相当简单的 CSV 文件。例如,如果其中一个字段包含(引用的)|作为值,则awk部分不起作用。