当前位置: 技术问答>linux和unix
vim编写正则表达式
来源: 互联网 发布时间:2016-10-30
本文导语: 刚学习vim命令,希望通过正则表达式实现以下效果,请各位高手帮忙。谢谢! 原文件(分三个字段,前16位是一个字段,姓名是一个字段,金额是一个字段,姓名与金额间空格为4位) 6221111111111111张三三 1020 62...
刚学习vim命令,希望通过正则表达式实现以下效果,请各位高手帮忙。谢谢!
原文件(分三个字段,前16位是一个字段,姓名是一个字段,金额是一个字段,姓名与金额间空格为4位)
6221111111111111张三三 1020
6221111111111111张 三 1020
6221111111111111李三三 1020
6221111111111111李 三 1020
6221111111111111张三三 1020
6221111111111111张三三 1020
6221111111111111张三三 1020
6221111111111111张三三 1020
6221111111111111张三三 1020
6221111111111111张三三 1020
6221111111111111张三三 1020
6221111111111111张三三 1020
6221111111111111张三三 1020
希望改为
6221111111111111,张三三,1020.00
6221111111111111,张三,1020.00
6221111111111111,李三三,1020.00
6221111111111111,李三,1020.00
6221111111111111,张三三,1020.00
6221111111111111,张三三,1020.00
6221111111111111,张三三,1020.00
6221111111111111,张三三,1020.00
6221111111111111,张三三,1020.00
6221111111111111,张三三,1020.00
6221111111111111,张三三,1020.00
6221111111111111,张三三,1020.00
原文件(分三个字段,前16位是一个字段,姓名是一个字段,金额是一个字段,姓名与金额间空格为4位)
6221111111111111张三三 1020
6221111111111111张 三 1020
6221111111111111李三三 1020
6221111111111111李 三 1020
6221111111111111张三三 1020
6221111111111111张三三 1020
6221111111111111张三三 1020
6221111111111111张三三 1020
6221111111111111张三三 1020
6221111111111111张三三 1020
6221111111111111张三三 1020
6221111111111111张三三 1020
6221111111111111张三三 1020
希望改为
6221111111111111,张三三,1020.00
6221111111111111,张三,1020.00
6221111111111111,李三三,1020.00
6221111111111111,李三,1020.00
6221111111111111,张三三,1020.00
6221111111111111,张三三,1020.00
6221111111111111,张三三,1020.00
6221111111111111,张三三,1020.00
6221111111111111,张三三,1020.00
6221111111111111,张三三,1020.00
6221111111111111,张三三,1020.00
6221111111111111,张三三,1020.00
|
'cut -c1-16 file '+','+'cut -c17-19 file'+','
|
分三步完成:
:%s/^[0-9]+/&,/g 行首所有数字后面加逗号
:%s/ +/,/g 所有空格换成逗号
:%s/[0-9]$/&.00/g 行尾数字后面加.00
:%s/^[0-9]+/&,/g 行首所有数字后面加逗号
:%s/ +/,/g 所有空格换成逗号
:%s/[0-9]$/&.00/g 行尾数字后面加.00
|
刚才没注意姓名字段中有空格。
连续4个空格换成逗号
连续4个空格换成逗号
:%s/ /,/g
|
连续4个空格换成逗号,也可以这么写
:%s/ {4}/,/g
如果空格个数不固定,可以写成类似这样
:%s/ {3,6}/,/g 连续3到6个空格换成逗号
第一个子段加逗号也可以这么写
:%s/[0-9]{16}/&,/g 连续16个数字后面加逗号
:%s/ {4}/,/g
如果空格个数不固定,可以写成类似这样
:%s/ {3,6}/,/g 连续3到6个空格换成逗号
第一个子段加逗号也可以这么写
:%s/[0-9]{16}/&,/g 连续16个数字后面加逗号
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。