Скрипт оболочки для чтения значений из файла и сравнения их с другим значением - PullRequest
0 голосов
/ 14 ноября 2018

Мне нужен сценарий оболочки, где я читаю число, и оно сравнивает число с числами в другом файле. Вот пример:

У меня есть файл 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 голосов
/ 14 ноября 2018

Попробуйте, сначала вы используете 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
0 голосов
/ 14 ноября 2018

Использование:

#!/bin/bash

echo -n "Enter the number: "
read num

awk -F\; '$3 < '$num' {print $0;}' myfile
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...