在一个文件夹里,我有两个文件。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版本
谢谢您
Here the csv file opened with excel

最佳答案

这是我的文件data.csv

Site,Post,Subject,User,Status
stackover flow,bash,read csv,James,ok
git,linux,core,Novy,ko

在我的bash脚本中,我有这样的东西:
#!/bin/bash
INPUT=./data.csv
OLDIFS=$IFS
IFS=,
[ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; }
while read site post subject usr status
do
    echo "Site : $site"
    echo "Post : $post"
    echo "Subject : $subject"
    echo "User : $usr"
    echo "Status : $status"
done < $INPUT
IFS=$OLDIFS

输出
站点:stackover flow
帖子:bash
主题:读取csv
用户:詹姆斯
状态:正常
地点:git
帖子:linux
主题:核心
用户:Novy
状态:ko
您可以查看here

10-05 20:49
查看更多