Shell脚本从文件读取值并将它们与另一个值进行比较

时间:2018-11-14 10:13:11

标签: linux bash shell

我需要一个shell脚本,在其中读入一个数字,并将其与另一个文件中的数字进行比较。 这是一个示例:

我有一个名为numbers.txt的文件,其中包含以下内容:

name;type;value;description
samsung;s5;1500;blue
iphone;6;1000;silver

我读了一个数字,例如1200。它应该从文件中打印出小于1200的值(在我的示例中,它应打印出1000)

这是我开始编写的代码,但我不知道如何完成。

echo " Enter a number"
read num
if [ $numbersinthefile -le $num ]; then
echo "$numbersinthefile"

我希望我正确地定义了我的问题。有人可以帮我吗?

2 个答案:

答案 0 :(得分:1)

使用:

#!/bin/bash

echo -n "Enter the number: "
read num

awk -F\; '$3 < '$num' {print $0;}' myfile

答案 1 :(得分:0)

尝试一下,首先使用sed删除第一行,然后使用cut从行中获取实际数字,然后将该数字与输入进行比较。

echo " Enter a number"
read num

sed '1d' numbers.txt | while read line; do
   numbersinthefile=$(echo $line | cut -d';' -f3);
   if [ $numbersinthefile -lt $num ]; then
      echo $line;
   fi
done