Дано
34-2
34-5
34-3
Я ищу, чтобы получить
34-2=28
34-5=29
34-3=31
Или это также было бы полезно: учитывая:
34-2=5
34-5<=34
34-3=31
Я ищу, чтобы получить
! 34-2=5
34-5<=34
34-3=31
Где! Является ли указание на то, что неравенство или равенство ложно. Я ищу то, что обрабатывает текстовые файлы.
34-2==5
", а не только один, поскольку в большинстве языков программирования для присваивания используется один знак равенства.Ответы:
Первый случай
-n
петли над линиями.-l
удаляет символы новой строки$_
, но разделяет выходные строки символами новой строки.-e
определяет выражение для запуска.$_
является заполнителем для "текущей строки"..
объединяет строки.eval()
возьмет строку и оценит ее как код, например,eval('5+8')
возвращает13
.Второй случай
С двойными знаками равенства в инфиле, как отмечено в моем комментарии к исходному вопросу:
Как и прежде в общем.
-l
не нужен / разыскивается, так как в этом случае новые строки позаботятся о себе.?:
Конструкция является тройным оператором . Если предыдущее выражение истинно, верните пробел, в противном случае верните восклицательный знак.источник
Вот скрипт на python для обработки первой части вашего вопроса:
Вставьте приведенный выше код
test.py
, введите входtest.dat
и запустите так:Я предполагаю, что Unix-подобная ОС. Обратите внимание, что может быть опасно передавать ввод в любой скрипт, который выполняется
eval
- не передавайте неизвестные данные этому скрипту.источник