如何在 ksh - unix 中将字符串转换为负十进制数
How to convert the string to negative decimal number in ksh - unix
如果在某个位置发现了一个特定的字符,我需要用一个数字替换它,并使整个字符串为负十进制数。
例如:
如果在第14位发现}
需要用2替换成负十进制数:
sed -e 's/^\(.\{9\}\)}/./;s/\(.\)/-/' <<< '123 00}000150}'
输出为:
-.123 00}0001502
但是,预期输出是:
123 -00}00015.02
这会起作用:
sed -e 's/\(.* \)\(.\{8\}\)\(.*\)}/-./' <<< '123 00}000150}'
</code> 将具有值:<code>123
(匹配从第一个字符到第一个 space)
</code> : <code>00}00015
(接下来的 8 个字符)
</code> : <code>0
(找到下一个 }
之前的字符)
如果在某个位置发现了一个特定的字符,我需要用一个数字替换它,并使整个字符串为负十进制数。 例如:
如果在第14位发现}
需要用2替换成负十进制数:
sed -e 's/^\(.\{9\}\)}/./;s/\(.\)/-/' <<< '123 00}000150}'
输出为:
-.123 00}0001502
但是,预期输出是:
123 -00}00015.02
这会起作用:
sed -e 's/\(.* \)\(.\{8\}\)\(.*\)}/-./' <<< '123 00}000150}'
</code> 将具有值:<code>123
(匹配从第一个字符到第一个 space)
</code> : <code>00}00015
(接下来的 8 个字符)
</code> : <code>0
(找到下一个 }
之前的字符)