如果在某个位置找到特定字符,我需要用数字替换它,并将整个字符串作为负十进制数。 例如:
如果在第14个位置找到}
,则需要将其替换为2并使其为负十进制数:
sed -e 's/^\(.\{9\}\)}/.\12/;s/\(.\)/-\1/' <<< '123 00}000150}'
输出是:
-.123 00}0001502
但是,预期的输出是:
123 -00}00015.02
答案 0 :(得分:1)
这将有效:
sed -e 's/\(.* \)\(.\{8\}\)\(.*\)}/\1-\2.\32/' <<< '123 00}000150}'
\1
将有价值:123
(从第一个字符到第一个字符匹配)
\2
:00}00015
(接下来的8个字符)
\3
:0
(找到下一个字符}
)