Я пытался создать скрипт bash для этого
У меня есть текстовый файл ...
вывод файла может быть не в правильной структуре .. Нужно проверить содержит ли этот файл строку, test. Если да, получите числовое значение, связанное с этой строкой ...."test : 201"
сравнить значение с другим ссылочным номером 100 100 - это значение, которое является пользовательским вводом .. if 201> 100
сделайте это .. еще сделайте это .. [ ! d2] Как я могу это достичь?
я думаю, что вы ищете скрипт, который принимает два параметра - имя и идентификационный номер. Назовем файл F и регистрационный номер р.!н0]
если файл F содержащий строку вида [Ф3], где N-количество, которое вы хотите выполнить какие-то действия, если n > r и альтернативное действие, если N <= р.
если я правильно понял проблему, этот скрипт должен делать свое дело:
[Ф1]предположим, что вы сохраните это в файл с названием [Ф4]. Затем вы можете запустить [ф5] и если [ф6] содержит строку типа [ф7] вы увидите [ф8] эхом в стандартный вывод.
обновление: в аскер списки альтернативный сценарий в комментариях, где там может быть несколько строк, соответствующих [F9] в файл. Наибольшее значение, связанное с [ф10] должен быть выбран и сравниваются с эталонными. Просто измените первую строку в скрипте:
[Ф2]последующие строки такие же, как и раньше.
Я думаю, вы ищете сценарий оболочки, который может принимать два аргумента - имя файла и ссылочный номер. Назовем файл F и ссылочный номер R.
Если файл F содержит строку вида test : N, где N - число, вы хотите выполнить какое-либо действие, если N> R и альтернативное действие если N & lt; = 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)
Последующие строки такие же, как и раньше.
Я думаю, вы ищете сценарий оболочки, который может принимать два аргумента - имя файла и ссылочный номер. Давайте назовем файл F и ссылочный номер R.
Если файл F содержит строку вида test : N, где N - число, вы хотите выполнить какое-либо действие, если N> R и альтернативное действие если N & lt; = 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)
Последующие строки такие же, как и раньше.