在一个仅包含字母数字字符的固定宽度文件中,我想要替换字母和数字字段之间(包括有符号小数,但不包括科学计数法)以及数字和数字字段之间的空格,同时保留字母字符值之间的空格。
我知道可以使用awk的FIELDWIDTHS选项,但我所拥有的文件类型具有太多具有太多独特结构的字段,无法进行概括。
以下是一个玩具示例:
需要按照以下格式进行格式化:
寻找使用sed、perl、awk等任何便携式解决方案。
编辑:
为了澄清问题并提高整体可用性,这里有更多的行来测试解决方案。请继续假设任何带空格的字母字符确实意味着要保持在一起(即假设没有出现“Bob Jones Chuck Smith”的情况)。
我知道可以使用awk的FIELDWIDTHS选项,但我所拥有的文件类型具有太多具有太多独特结构的字段,无法进行概括。
以下是一个玩具示例:
708 447 4797 JOHN SMITH 18000
需要按照以下格式进行格式化:
708|447|4797|JOHN SMITH|18000
寻找使用sed、perl、awk等任何便携式解决方案。
编辑:
为了澄清问题并提高整体可用性,这里有更多的行来测试解决方案。请继续假设任何带空格的字母字符确实意味着要保持在一起(即假设没有出现“Bob Jones Chuck Smith”的情况)。
708 447 4797 JOHN SMITH 18000
708 447 4797 JOHN SMITH 18000
708 447 4797 JOHN SMITH 18000
708 -3.00 4797 JOHN SMITH 18000
应该得到如下结果:
708|447|4797|JOHN SMITH|18000
708|447|4797|JOHN SMITH|18000
708|447|4797|JOHN SMITH|18000
708|-3.00|4797|JOHN SMITH|18000
123 Bob Jones Chuck Smith 456
,那么Bob和Chuck是不同的人吗? - dawg