使用 sed 或其他方法处理 bash 中带分数的数字
Processing of numbers with fractions in bash with sed or others
我需要处理一堆包含 1,56728 形式的数字的文本文件。
原始值以厘米为单位,我需要将其转换为 72dpi
(num * 0,393700787402 * 72
).
原始值采用这种格式 X= 1.767 Y= 1.5
。
我试过 sed s/[^0-9]
找到这些数字,但没成功。
我应该使用 sed 吗?如果是,我该如何计算?
我会为此使用 awk
,它会进行浮点计算(bash 不会)并且可以轻松处理您的文件格式。
$ awk -F'[= ]+' \
'function dpi(x){return x*0.39*72}{print "= "dpi()" ""= "dpi()}' \
input_file
-F'[= ]+'
部分告诉 awk 在 space 或等号处拆分列。函数 dpi
对一个输入进行转换。主块使用原始变量名称打印出转换后的值。根据自己的喜好调整。
我需要处理一堆包含 1,56728 形式的数字的文本文件。
原始值以厘米为单位,我需要将其转换为 72dpi
(num * 0,393700787402 * 72
).
原始值采用这种格式 X= 1.767 Y= 1.5
。
我试过 sed s/[^0-9]
找到这些数字,但没成功。
我应该使用 sed 吗?如果是,我该如何计算?
我会为此使用 awk
,它会进行浮点计算(bash 不会)并且可以轻松处理您的文件格式。
$ awk -F'[= ]+' \
'function dpi(x){return x*0.39*72}{print "= "dpi()" ""= "dpi()}' \
input_file
-F'[= ]+'
部分告诉 awk 在 space 或等号处拆分列。函数 dpi
对一个输入进行转换。主块使用原始变量名称打印出转换后的值。根据自己的喜好调整。