我有一个包含非常大的5位数字列表的文本文件。有些行包含多个5位数字,而没有换行符分隔
12345
23456
34567
4567856789
67890
...
837460174975917
...
我正在尝试找到一个可以与sed一起使用的正则表达式,它将在数字之间添加换行符。
所需的输出是:
12345
23456
34567
45678
56789
67890
...
83746
01749
75917
...
我已经玩了一下,但我能想到的最好的东西就像^([0-9] {5})替换为$ 1 / r / n。但是,这会在每个数字后面添加一个换行符,之后我需要删除所有空行,因为这个文件的大小不是最佳的。
答案 0 :(得分:2)
使用fold
的轻量级解决方案:
示例输入:
cat filename
12345
23456
34567
4567856789
使用折叠的解决方案:
cat filename|fold -w5
12345
23456
34567
45678
56789
更新(根据Kenavoz的建议):为避免不必要地使用cat
和pipe
fold -w5 filename
答案 1 :(得分:1)
使用grep -o
即可:
grep -Eo '.{5}' file
12345
23456
34567
45678
56789
67890
83746
01749
75917