最近碰到一个头疼的问题,需要将如下样式的行中的数字字段的格式:
原格式:
100,abc,"efg,hij", xyz ,aaaa bbbb ccc," 123.456.789,23-",20120101
100,efg,abcdefg,uvwx,defg 1234 hijk," 1.000,00-",20120712
100,xyz,mnmna,uvwx,defg 1234 hijk," 1.000,00",20120712
转换成:
100,abc,"efg,hij", xyz ,aaaa bbbb ccc," -123456789.23",20120101
100,efg,abcdefg,uvwx,defg 1234 hijk," -1000.00",20120712
100,xyz,mnmna,uvwx,defg 1234 hijk," 1000.00",20120712
说白了,就是只对倒数第二个数字字段进行格式转换.
原来的格式中千分位的分隔符是点,而小数位却是逗号,并且负数符号在最后,需要转换民一般我们常见的格式,即负号在最前,不用千分位,小数点用点,如:
123.456.789,23- ==> -123456789.23
1.000,00- ==> -1000.00
1.000,00 ==> 1000.00
我用sed工具试了一下,怎么搞都得不到预期的结果,请问有什么方法可以实现如上所述转换?不一定是sed,awk也行. |