Как создать сценарий Bash, который может искать строку в файле и получить числовое значение строки и соответствовать другому значению

Я пытался создать сценарий удара, чтобы сделать это

У меня есть текстовый файл...

  • вывод файла не мог бы быть в надлежащей структуре..
  • Должен проверить, содержит ли тот файл строку, test.

    Если да, свяжите численное значение с той строкой....

    "test : 201"  
    

    сравните значение с другим ссылочным номером 100
    100 значение, которое является вводом данных пользователем..

    if 201> 100  
    

    сделайте это..
    еще
    сделайте это..

Как я могу достигнуть этого?

-1
задан 24 May 2018 в 12:09

1 ответ

Я думаю, что Вы ищете сценарий оболочки, который может взять два аргумента - имя файла и ссылочный номер. Давайте назовем файл F и ссылочный номер R.

Если файл F содержит строку формы test : N где N является числом, Вы хотите выполнить некоторое действие если N> R и альтернативное действие если N <= R.

Если я понял проблему правильно, этот сценарий оболочки должен добиться цели:

matching=$(grep "test" $1 | head -n 1 | cut -d ":" -f 2)                         
if [ -z $matching ]; then                                                        
  echo "no matching lines!" >&2                                                  
else                                                                             
  trimmed=$(echo $matching | xargs)                                              
  if [ $trimmed -gt $2 ]; then                                                   
    echo "greater"                                                               
  else                                                                           
    echo "less than or equal to"                                                 
  fi
fi

Предположим, что Вы сохраняете это в названном файле myscript. Затем можно работать ./myscript input.txt 100 и если input.txt содержит строку как test : 52 вот увидишь less than or equal to отраженный к стандартному выводу.

Обновление: автор вопроса перечисляет альтернативный сценарий в комментариях, где может быть несколько соответствий строк test : n в файле. Самое большое значение, связанное с test потребности, которые будут выбраны и по сравнению со ссылкой. Просто измените первую строку в сценарии:

matching=$(grep "test" $1 | cut -d ":" -f 2 | sort -gr | head -n 1)

Последующие строки совпадают с прежде.

4
ответ дан 29 October 2019 в 06:52

Другие вопросы по тегам:

Похожие вопросы: