在一个文件夹里,我有两个文件。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