我想保留每一行的前300个字符。显而易见的解决方案:
sed -E 's/^(.{0,300}).*/\1/'
显然超过了一些内部正则表达式限制:
RE error: invalid repetition count(s)
一些实验表明,重复计数最多只能达到255,至少在我的平台上(MacOS)。 Python可以处理{0,300},但如果可能的话,我更愿意使用普通的shell工具。有什么想法吗?
PS:是的,我知道,如果我在Python中这样做,我会行[:300]并完全抛弃正则表达式。答案 0 :(得分:0)
GNU sed
上没有错误,看看cut
是否适合您
$ perl -e 'print "a" x 350' | sed -E 's/^(.{0,300}).*/\1/' | wc -L
300
$ perl -e 'print "a" x 350' | cut -c1-300 | wc -L
300