Я хотел бы выполнить некоторые основные математические вычисления в пакетном/Cygwin, но решение, описанное в StackOverflow question: Calculating the sum of two variables in a batch script, использует команду set /A
.Вычисление суммы двух переменных в одноканальной линии Batch/UNIX
Это меня не устраивает, потому что я хотел бы иметь все в трубе (стиль UNIX, следовательно, Cygwin).
Моя идея следующая: У меня есть список файлов, содержащих запись. Я бы хотел показать для всего упомянутого файла одну строку за этой записью.
Поэтому я думал о следующем подходе:
Найдите строку, в которой найдена записи: fgrep -n <entry>
// это показывает номер строки вместе с самой записью
только показать номер строки: fgrep -n <entry> | awk -F ':' '{print $1}'
Добавить «1» на этот номер
Возьмите первое количество записей: head -<new number>
взять только последнюю строку: tail -1
Но, как я не знаю, как добавить 1 к числу, я застрял здесь.
Я уже пробовал использовать bc
(базовый калькулятор), но моя установка Cygwin, похоже, не покрывает это. Как я хочу иметь все в пределах одной линии трубопровода, использование set /A
не имеет смысла.
Есть ли у кого-нибудь идеи?
Заранее спасибо
Вы можете добавить BC в свою установку cygwin, перезапустив установку и установив ее. – AlG
Пакет cygwin называется «bc»: https://cygwin.com/cgi-bin2/package-grep.cgi?grep=bin%2Fbc&arch=x86_64 –
'expr' может использоваться для выполнения некоторой арифметики –