linux - 在 Bash 中将多个摄氏度值转换为华氏度

标签 linux bash unix awk temperature

我有一个文本文件,其中包含需要转换为华氏温度的多个摄氏温度值。

文本文件:

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

我最初想到了 awk '{print ${1..14}' text_file 在执行转换之前分离出每个值,但是,这似乎不是很有效...

最佳答案

遍历所有字段。做计算。将结果赋值给相应的变量。

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

awk -v RS=" " '{printf("%.1f ",$1*1.8+32)}'

关于linux - 在 Bash 中将多个摄氏度值转换为华氏度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32077840/

相关文章:

regex - 如何停止搜索单词(regex、grep)?

bash - 用dd跳过stdin的前32k?

linux shell存放路径

linux - 在 Linux 中使用 cURL 进行 HTTP POST 和 GET

linux - 循环停止

bash - 如何删除符号链接(symbolic link)未指向的所有子目录?

linux - Unix:bash脚本调用脚本,以及相对路径

linux - 打印unix/linux中文件最多的目录

c - 如何暂停进程并继续程序?

windows - 在 linux 上编译 windows 屏保