如何用单行sed命令为文件中的数字与字母间添加制表符?
单行sed命令实现数字与字母间插入制表符
当然可以!这里有个简洁的单行sed命令,能帮你在所有数字和字母的相邻位置(不管是数字在前还是字母在前)插入制表符:
sed -E 's/([0-9])([a-zA-Z])/\1\t\2/g; s/([a-zA-Z])([0-9])/\1\t\2/g' input.txt
命令细节解释
-E:启用扩展正则表达式,让括号等元字符不用额外转义,写法更简洁- 第一个替换规则
s/([0-9])([a-zA-Z])/\1\t\2/g:匹配「数字紧跟字母」的组合,把它替换成「数字 + 制表符 + 字母」,g表示全局替换所有匹配项 - 第二个替换规则
s/([a-zA-Z])([0-9])/\1\t\2/g:反过来处理「字母紧跟数字」的组合,同样插入制表符
示例效果
假设你的输入内容是:
abc123xyz456 789foo bar012
运行命令后输出会变成:
abc 123 xyz 456 789 foo bar 012
内容的提问来源于stack exchange,提问作者rishi
相关产品推荐
相关产品推荐

