文本文件
学生.txt
jane,good,3
bob,bad,2.6
annie,good,2.8
dan,bad,2
首先我尝试打印所有成功的好学生
#!/bin/bash
while IFS=, read -r -a array; do
[[ "${array[1]}" == "good" ]] || continue
printf "%s \n" "${array[0]}" is a ${array[1]} student"
done < "student.txt"
输出
jane is a good student
annie is a good student
接下来我也想在打印student的类型后总结文本文件中第三列的所有数字,没有成功
#!/bin/bash
while IFS=, read -r -a array; do
[[ "${array[1]}" == "good" ]] || continue
printf "%s \n" "${array[0]}" is a ${array[1]} student"
for n in "${array[2]}"; do
total=$( "$total +=$n" | bc )
echo $total
done
done < "student.txt"
输出
jane is a good student
+=3: command not found
annie is a good student
+=2.8: command not found
预期产出
jane is a good student
annie is a good student
total = 5.8
由于我是 bash 脚本的新手,我需要向你们寻求帮助。
哦,另一件事,我似乎无法充分利用 awk 实用程序。
即使我尝试了一个使用 awk 的简单语句,
例如
awk -F"," "{print $1}" "student.txt"
没错,如果我没有错,它应该返回这样的东西
输出
good
bad
good
bad
但相反,它返回了我不知道为什么的文本文件的整个值
我对 awk -F","{print $1}" "student.txt" 的输出
jane,good,3
bob,bad,2.6
annie,good,2.8
dan,bad,2
所以我想任何使用 awk 方法的建议都没有了。