Nano Hash - криптовалюты, майнинг, программирование

Преобразование нескольких значений Цельсия в градусы Фаренгейта в Bash

У меня есть текстовый файл с несколькими значениями температуры по Цельсию, которые необходимо преобразовать в градусы Фаренгейта.

Текстовый файл:

32 28 26 27 28 28 29 27 28 28 30 31 31 30

Сначала я думал о awk '{print ${1..14}' text_file, чтобы отделить каждое значение перед выполнением преобразования, но это казалось не очень эффективным...


Ответы:


1

Перебрать все поля. Делайте расчет. Назначьте результат обратно соответствующим переменным.

awk '{for(i=1;i<=NF;i++){$i=$i*1.8+32}}1' file

Формула преобразования градусов Цельсия в градусы Фаренгейта:

32 deg cel * 1.8 + 32

Пример:

$ echo '32 28 26 27 28 28 29 27 28 28 30 31 31 30' | awk '{for(i=1;i<=NF;i++){$i=$i*1.8+32}}1'
89.6 82.4 78.8 80.6 82.4 82.4 84.2 80.6 82.4 82.4 86 87.8 87.8 86

or

awk -v RS=" " '{printf("%.1f ",$1*1.8+32)}'
18.08.2015
  • Это идеально, спасибо! Есть ли способ гарантировать, что все преобразованные значения имеют один десятичный знак, даже если они получаются целым числом? например 77,0 вместо 77. 18.08.2015
  • подумайте, что это округляется до 1 разряда, если за точкой не следует 0. 18.08.2015
  • Аарон, для управления форматом печатаемых чисел используйте функцию printf(). Вы также можете использовать RS. Например, awk -v RS=" " '{printf("%.1f ",$1*1.8+32)}' 18.08.2015
  • @AvinashRaj отличный ответ, но для будущих читателей стоит отметить, что изменение содержимого полей сводит на нет пробелы, поэтому, хотя поля будут правильными, напечатанная строка потеряет любое форматирование. 18.08.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..