Using GNU sed with extended regex:
sed -r '
s#(<Value>.*[[:digit:]])\.(.*</Value>)#\1 \2#
s#(<Value>.*[[:alpha:]])\.(.*</Value>)#\1\2#
' file
或作为一个单行本。
sed -r ':del; s#(<Value>.*[[:digit:]])\.(.*</Value>)#\1 \2#; s#(<Value>.*[[:alpha:]])\.(.*</Value>)#\1\2#; t del' file
-r for extended regex. It's just for convenience, otherwise you would have to use \( ... \)
s#text#replacement# you can choose a different delimiter also just for convenience. Then there is no need to escape literal /
:del is a definiton of a label
( ) save the matches that can be later back-referenced using \1, \2, ...
tdel jumps to label :del if the s commands changed the line. This is to ensure all of the dots get replaced
