在Shell脚本中逐行读取文件并显示最低2个值

时间:2018-10-23 16:44:10

标签: linux shell

我创建了一个游戏,用户在其中猜测程序随机创建的数字,并在成功猜测程序时询问用户名并将用户名和分数存储在文件中。 现在我要打印3个得分最低的球员的姓名和得分。

range=129
randNum=`expr $RANDOM % $range`     # generates a random number between 0 and 128

score=0

printf "Enter a number: "
read num

while [ $randNum -ne $num ];
do

    if [ $num -lt $randNum ]; then
        printf "Low guess"
        score=`expr $score + 1`
    else
        printf "High guess"
        score=`expr $score + 1`
    fi

    printf "\nEnter a number: "
    read num
done

read  -p "Enter your name: " name

FILE="gameScores.txt"
echo "$name     $score" >> $FILE

readFile=`cat $FILE`

# what should i do furthur to read from file sequentially and apply a condition for lowest scores

1 个答案:

答案 0 :(得分:1)

尝试

sort -k 2,2n gameScores.txt | head -3

这将根据第二个字段中的分数对分数文件进行排序。然后,您只需打印出前3个分数,应该是您的最低分数。

希望这会有所帮助。