我正在尝试过滤文件的特定行,仅从文件中获取数字。
我的文件位于/ home / evaluation / studentName 中,并且包含以下内容:
但也可以包含以下内容:
所以每个学生都有自己的分数。
我只想过滤总数数字。 因此它将显示: 90 或 70 。
然后只需在学生档案中附加该数字即可。
到目前为止,我去过这个:
for file in /home/evaluation/* ; do
awk -v tot="$tot" '{sum+=$2} END {print "Total", (sum/(tot*20))*100"/100"}' "$file" >> "$file"
result=$(grep "Total" "$file" | cut d' ' -f2)
echo "$result" >> $file
done
但是不幸的是,它并不起作用。
答案 0 :(得分:2)
那下面的东西呢?
for file in /home/evaluation/*
do
result=$(cat $file | grep Total | cut -d':' -f2 | cut -d'/' -f1)
echo "$result" >> $file
done
答案 1 :(得分:1)
s
解决方案:所有工作都有一个简单的命令
假设sed
已经是最后一行:
Total
如果Total不是最后一行,事情就会变得更加复杂:
sed 's/Total \([0-9]\+\)\/[0-9]\+ *$/&\n\1/' -i /home/evaluation/*