【发布时间】:2016-03-26 16:44:20
【问题描述】:
我一直在寻找几个小时来寻找包含 21 个数字字符的字符串并在字符串本身前面放置一个 return 的方法。最后我找到了解决方案:
sed -r 's/\b[0-9]{21}\b/\n&/g'
效果很好!
现在我有一组包含 21 个数字字符的新数据,但在字符串末尾还有一些字母字符,可变长度为 3 到 10 个字符。
示例输入:
169349870913736210308ABC
168232727246529300209DEFGHI
166587299965005120122JKLMNOPQRS
162411281984306600005TUVWXYZ
我想要的是在数字和字母字符之间有一个空格:
169349870913736210308 ABC
168232727246529300209 DEFGHI
166587299965005120122 JKLMNOPQRS
162411281984306600005 TUVWXYZ
请注意每个数字开头的 16。我试过使用:
sed -r 's/^\b[0-9]{21}\+[A-Z]{3,10}\b/ /g' filename
但我无法让它工作,因为我不知道也找不到如何专门搜索包含精确数量的数字字符和特殊长度的字母字符的字符串。我在这个网站上找到了很多有用的问题,但我找不到这个。
【问题讨论】: