如何在第5列数字和字母之间插入空格,错误代码应该是这样的:
554 RTR:BL
421 MFF:MT
Timestamp: EmailTo: EmailFrom: IPAddress: ErrorCodes:
2016-06-19 [email protected] [email protected] 16.23.29.141 554RTR:BL
2016-06-20 [email protected] [email protected] 13.43.219.141 421MFF:MT
答案1
假设第 5 列总共有 3 位数字,使用 GNUsed
你可以这样做,
sed -r 's/([^\s]*\s){5}[0-9]{3}/& /' filename
样本:
$ sed -r 's/([^\s]*\s){5}[0-9]{3}/& /' filename
Timestamp: EmailTo: EmailFrom: IPAddress: ErrorCodes:
2016-06-19 [email protected] [email protected] 16.23.29.141 554 RTR:BL
2016-06-20 [email protected] [email protected] 13.43.219.141 421 MFF:MT
解释 :
前五个字段由零个或多个字符描述,这些字符不是以空格分隔,
[^\s]*
后跟空格。错误代码由前 3 位数字后跟字母来描述。替换是
&
与后面添加的空格匹配的所有内容。