需求
编写一个shell脚本对文件中每一行的数字串进行格式化:每3个数字加入一个逗号(,)。
例如:数字串为“123456789”,那么需要格式化为123,456,789。
方案
sed -E ':lable; s/([0-9])([0-9]{3})\>/\1,\2/; tlable'
思路
- 零宽标签
:lable
t命令 sed
词边界正则\>
sed正则表达式- 行分断回环分支
other
sed不支持\d类、\D、\W反义类,零宽断言、懒惰(非贪婪)模式
sed中使用正则表达的注意点
1.sed默认为贪婪模式,不支持懒惰模式
2.sed中使用正则表达式注意sehll特殊字符冲突问题,比如(exp),但是可以使用-r参数解决冲突
3.sed中不支持使用\d和反义的\W等表达方式
sed command